我有一個問題快速製作ajax 和功能。這裏的僞/原型代碼:jQuery Ajax:在繼續之前如何等待* async *請求成功完成?
function blah1(arg1){//arg1 is an array, roughly 10 elements
var arr[];
$.each(arg1, function(i){
//blah code
$.ajax({
//blah options
async: true,
success: function(data){
arr[i] = data.someInt;
}//end success
});//end ajax
}//end each
return arr;
}//end function
基本上,我發送一個ajax,並需要返回的數據進一步處理。
如果我將async設置爲true,則該函數立即返回空'arr'數組,因此整個腳本失敗。 但是,如果我將async設置爲false,那麼它可以工作,但需要很長時間。
我已經看到這個$.ajaxQueue();的東西,但坦率地說,我根本不理解它,我不知道它是否會起作用。
所以問題是,首先,有什麼辦法可以在同一時間異步發送所有的ajax請求,讓所有的ajax完成後,等待並返回arr []?如果沒有,ajaxQueue會在我的情況下工作嗎? (粗略的例子請?)
難道你不能在單個AJAX請求中發送它的所有內容,並解析所有10個答案的結果嗎? – Peeter 2011-03-23 07:20:44
這是可能的,但這意味着我將不得不在服務器端進行編輯,這對我來說是一團糟。我寧願在jQuery上做。 – JQonfused 2011-03-23 07:25:31
1個請求比10個請求更好。您將最終達到瀏覽器請求限制。 – Peeter 2011-03-23 09:33:12