Я создаю файл на сервере, который занимает некоторое время. Для этого у меня есть скрытый iframe, который я затем устанавливаю атрибут .src в файл aspx, т.е. iframe.src = "/downloadFile.aspx"
Пока это происходит, я бы хотел, чтобы звонок в веб-сервис вернул ход выполнения. Для этого я подумал, что мог бы использовать window.setInterval или window.setTimeout, но Javascript, кажется, блокируется, как только я устанавливаю атрибут iframe src.
Кто-нибудь знает, как обойти это или, возможно, попробовать другой подход?
Я также пробовал обработчики, но запрос никогда не попадает на сервер, поэтому я предполагаю, что это проблема браузера / javascript.
// Функция, которая получает файл
function GetFile() {
setTimeout(GetProgress, 1000);
var iframe = document.createElement("iframe");
document.body.appendChild(iframe);
iframe.src = "downloadFile.aspx";
}
/ * НЕ РАБОТАЕТ - функция, которая получает данные о ходе выполнения, но никогда не получает их, пока не завершится iframe, и не предоставит пользователю диалог загрузки файла. * /
function GetProgress() {
$.post('progress.file', function(data) {
console.log(data);
setTimeout(GetProgress, 1000);
});
}