Как я знаю, когда запрос ajax завершен в jquery - PullRequest
0 голосов
/ 07 ноября 2010

У меня есть два почтовых запроса, которые я делаю с использованием jquery и метода, который использует результат этих сообщений. Таким образом, код работает так:

 post1
 post2
 function

Как мне получить код, чтобы дождаться завершения post1 и post2 перед вызовом функции? Я попытался сделать цикл while, чтобы увидеть, были ли установлены данные из post1 и post2, но он зависает в браузере. Я мог бы вызывать их синхронно, но это было бы медленнее, чем отключение обоих запросов и ожидание их завершения. Это было бы легко решить на любом многопоточном языке, кроме JavaScript, поскольку официально он не предполагает многопоточность и поэтому не поддерживает ожидание завершения серии «потоков».

Ответы [ 2 ]

2 голосов
/ 07 ноября 2010

Сохраните количество запросов и измените его в обратном вызове, а затем посмотрите, есть ли еще для выполнения.

var count = 2;
var callback = function () {
    count--;
    if (!count) {
        both_ajax_called_successful();
    }
};

jQuery.ajax({url: 'example1', success: callback});
jQuery.ajax({url: 'example2', success: callback});
1 голос
/ 07 ноября 2010

Объявите счетчик со значением, равным количеству запросов, и вычитайте единицу из его значения каждый раз, когда вы получаете ответ.Когда значение равно 0, все запросы должны быть выполнены.

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