2012-02-07 228 views
7

我有三個AJAX請求一個接一個地開始,我希望能夠同時回顯所有數據。同步三個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都需要在同一時間與他們的相對數據加載。上面的代碼沒有這樣做。

回答

10

您可以使用jQuery的deferred object在1.5版本中增加:

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

哦,看起來不錯.... – 2012-02-07 10:11:10

+0

時間做一些功課。謝謝! – Norse 2012-02-07 10:16:01

+0

是的,延期對象非常強大並且提高了代碼的可讀性 – 2012-02-07 10:21:31