У меня есть страница на веб-сайте, где вы можете скачать файлы, за которые вы ранее заплатили. Файл представляет собой zip-архив, содержащий множество pdf-файлов. При нажатии на ссылку для скачивания вызывается php-файл, который выполняет некоторую работу (добавление штампа в PDF-файлы) до того, как файл будет отправлен. Поскольку для больших файлов это может занять некоторое время, я встроил механизм опроса, чтобы показать пользователю, что происходит. Опрос выполняется с помощью вызова ajax, который выглядит следующим образом:
$('.rm-table').on(clickhandler,'.fa-download', function(e){
tr = $(this).closest('tr');
id = tr.attr('id');
tr.find("progress").show();
tr.find('.downloadstatus').show();
tr.find('.downloadstatus').html('Start Download...');
setTimeout(getDownloadStatus(), 250);
});
function getDownloadStatus(){
setTimeout( function() {
$.ajax({
url: '/process/{{Auth::id()}}/'+id,
type: 'POST',
async: true,
cache: false,
data: {},
dataType: "json",
success: function(data, textStatus, jqXHR)
{
var tekst = data.tekst;
var perc = data.percentage;
tr.find('.downloadstatus').html(tekst);
tr.find('progress').val(perc);
if(tekst != 'done'){
getDownloadStatus();
} else {
tr.find('.downloadstatus').html("Done!");
tr.find('progress').val(100);
setTimeout(
function()
{
tr.find('progress').val(0);
tr.find('progress').hide();
tr.find('.downloadstatus').html("");
tr.find('.downloadstatus').hide();
}, 750);
}
},
error: function(jqXHR, textStatus, errorThrown) {
var response = jQuery.parseJSON(jqXHR.responseText);
alert(response.error);
}
});
}, 250);
}
Опрос выполняется после перехода пользователя по ссылке. Таким образом, поведение ссылки по умолчанию не предотвращается.
Это отлично работает во всех браузерах в Windows, но опрос почему-то не запускается в Safari на Mac или даже в других браузерах на iPad. Кто-нибудь знает, в чем может быть проблема?
$('.rm-table').on(clickhandler,'.fa-download', function(e){
? - person Pankaj Makwana   schedule 27.06.2017onprogress
, доступное вXMLHttpRequest
? developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/ - person Professor Abronsius   schedule 27.06.2017