我想在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請求和回調到html表
- 2. 處理具有多個ajax請求的「大數據json請求」
- 3. 如何在django的AJAX請求中返回多個JSON對象
- 4. jQuery POST請求 - 返回JSON
- 5. Node.JS https請求返回JSON
- 6. 與backbone.js使用多個json請求
- 7. ASP.NET異步請求回調
- 8. ZMQ:多個請求/回覆對
- 9. openrasta XML請求返回的JSON
- 10. JSON文件未返回的GET請求
- 11. 使用React返回的JSON請求undefined
- 12. 返回JSON上的壞請求
- 13. 多個AJAX調用請求JSONP GeoServer
- 14. 一個JSON調用返回多個?
- 15. 在單個請求組多addToSet請求
- 16. RestTemplate Bad請求多個請求
- 17. 插入多請求由一個請求
- 18. Node.js請求 - 處理多個POST請求
- 19. SQL多個請求
- 20. 多個請求ID
- 21. Facebook多個請求
- 22. 多個Api請求
- 23. 通過HTTP請求調用Solr JSON請求API
- 24. 如何使用一個ajax請求從java servlet返回多個json對象
- 25. Alamofire JSON請求
- 26. iOS JSON請求
- 27. GET請求JSON
- 28. json PUT請求
- 29. json PUT請求
- 30. jQueryMobile - JSON請求
謝謝!我想從不同的URL加載JSON,但是你的代碼可以很容易地修改來做到這一點。 – gustavlarson 2009-06-06 14:16:10