【问题标题】:Synchronize three ajax requests同步三个ajax请求
【发布时间】:2012-02-28 18:19:30
【问题描述】:

我有三个 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 都需要同时加载它们的相关数据。上面的代码没有这样做。

【问题讨论】:

    标签: jquery ajax synchronize


    【解决方案1】:

    您可以使用 jQuery 1.5 版本中添加的deferred object

    $.when( $.ajax({1}) , $.ajax({2}) , $.ajax({3}) )
    .then(function() {
      alert("tada");
    });
    

    【讨论】:

    • 是的,延迟对象非常强大并且提高了代码的可读性
    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 2011-09-08
    • 1970-01-01
    • 2020-04-24
    • 2011-08-11
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多