我想在jQuery中創建X個Ajax請求,並將json響應添加到數組中。 當所有的Ajax請求完成後,我想執行一些代碼。有沒有解決這個問題的好方法?多個json請求的回調
2
A
回答
1
此代碼應該做你想做的,所有jQuery風格。基本上它使用一些遞歸來完成它。將選項傳遞給loadmultiples函數以設置您想要執行的操作,並將JSON響應壓入數組。如果您想將JSON響應合併到單個結構中,您可以輕鬆更改它,但我不確定這是否是您想要的。
var loadmultiples = function(options) {
var settings = $.extend({
//set the url to get
url : '/response.json',
//this function is called when everything is done
callback : function() {},
//set this option to define how many loads to do
numbertodo : 10,
//these two are just used for
//storing data while we recurse,
//and keeping track of the current position
//however you can change them if you want to start
//from a different point, or have existing data
numberdone : 0,
data : []
}, options || {});
//load the json, passing up the current 'number'
//of the content to load
$.ajax({
url : settings.url,
data : { 'number' : settings.numberdone },
dataType: 'json',
success: function(result) {
//add the response to the data
settings.data.push(result);
//increment the counter of how many files have been done
settings.numberdone++;
//
if(settings.numberdone < settings.numbertoexecute) {
loadmultiples(settings);
} else {
settings.callback(settings.data);
}
}
});
}
//so now we can call it...
loadmultiples({
callback: function(data) {
//this function will get called when all the data calls have been
//completed, and the resulting data is in the data parameter
}
});
2
除了對請求進行計數並在代碼中手動計算它們之外,我不知道任何其他方法。一旦他們全部回來並佔了上風,執行你的主回調。
0
對於每個Ajax響應,我會做:
for(var k in json) someArray[k]=json[k];
但我不知道如何看您的JSON數據。
0
我通過發射一串Ajax請求,然後遞減計數器作爲他們在最近做了這個。
它工作得很好,但我最終從一堆小AJAX的改變我的代碼請求一次向服務器請求所有內容。更少的請求和更少的開銷,以及更強大的功能。
除非你有很好的理由來提出個別請求(有些請求可能很快,有些請求很慢,並且可以在片段進入時提供一些有意義的信息顯示),我會把它們全部結合在一起(假設您可以修改服務器代碼或添加新的服務器代碼)。
相關問題
- 1. Jquery JSON多個請求
- 2. Jquery Json請求和回調到html表
- 3. iOS中的多個JSON請求
- 4. 有多個參數的Json Post請求
- 5. 解析Ruby中的多個JSON請求
- 6. 處理具有多個ajax請求的「大數據json請求」
- 7. 如何在django的AJAX請求中返回多個JSON對象
- 8. nodejs獲取多次請求回調
- 9. 多次請求完成後Alamofire回調
- 10. 調用多個JSON數據/於一體的getJSON請求文件
- 11. JSON請求返回兩個響應
- 12. jQuery POST請求 - 返回JSON
- 13. Node.JS https請求返回JSON
- 14. AJAX調用JSON請求
- 15. 與backbone.js使用多個json請求
- 16. 多個json數據到jmeter請求
- 17. Swift- JSON請求與多個頁面
- 18. 多個JSON請求紅寶石
- 19. 多個jquery ajax請求相同的回調
- 20. 多個請求
- 21. ASP.NET異步請求回調
- 22. jquery ajax請求多個返回值?
- 23. cURL - 多個請求和回聲內容
- 24. ZMQ:多個請求/回覆對
- 25. 返回JSON上的壞請求
- 26. 請求的URL沒有返回JSON
- 27. JSON文件未返回的GET請求
- 28. 使用React返回的JSON請求undefined
- 29. HTTP請求未返回所需的JSON
- 30. openrasta XML請求返回的JSON
謝謝!我想從不同的URL加載JSON,但是你的代碼可以很容易地修改來做到這一點。 – gustavlarson 2009-06-06 14:16:10