Вызов WebMethods / WebService с использованием jquery блокирует - PullRequest
0 голосов
/ 06 апреля 2010

Я создаю файл на сервере, который занимает некоторое время. Для этого у меня есть скрытый 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);
        });
    }

Ответы [ 2 ]

0 голосов
/ 06 апреля 2010
0 голосов
/ 06 апреля 2010

Не знаю точно, что вы делаете, но попробуйте также поместить свой код iframe.src = ... в window.setTimeout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...