2010-11-06 73 views
0

我有兩個使用jquery的發佈請求和使用這些帖子結果的方法。因此,代碼是這樣的:我如何知道jQuery何時完成ajax請求

post1 
post2 
function 

如何讓代碼等待兩個POST1和POST2調用的函數前完成?我試着做了一個while循環來查看post1和post2的數據是否都已經設置好了,但是它掛起了瀏覽器。我可以同步地調用它們,但是這比放置兩個請求並等待它們完成要慢。除了JavaScript以外,任何多線程語言都可以很容易地解決這個問題,因爲它不是多線程的,因此不支持等待一系列「線程」完成。

回答

2

保持請求計數,並在您的回調中修改它,然後查看是否有任何剩餘運行。

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}); 
+0

這個。在回調中執行此操作非常重要,而不是使用setTimeout來監視已完成多少個Ajax調用。 – Collin 2010-11-07 00:19:17

1

聲明一個計數器,其值是請求數量,每次獲得響應時減去一個值。當值爲0時,所有請求都應該完成。