Синхронизировать три ajax-запроса - PullRequest
7 голосов
/ 07 февраля 2012

У меня три AJAX-запроса, запускаемые один за другим, и я хотел бы иметь возможность отображать все данные одновременно.

$.ajax ({
        type: "POST",
        url: "page1.php",
        data: "var1=" + var1,
        success: function(msg) {
            $("#results2").load("page2.php", 
            function (responseText, textStatus, XMLHttpRequest) {
                $("#results3").load("page3.php",
                function (responseText, textStatus, XMLHttpRequest) {
                    if (textStatus == "success") {
                        $("#results1").html(msg);
                    }
                });
          });
        }
    });

#results1, #results2 и #results3 все должны быть загружены с их относительными данными одновременно. Код выше не делает этого.

1 Ответ

10 голосов
/ 07 февраля 2012

вы можете использовать отложенный объект jQuery, добавленный в версии 1.5:

$.when( $.ajax({1}) , $.ajax({2}) , $.ajax({3}) )
.then(function() {
  alert("tada");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...