[英]jquery parallel ajax calls loop one after another
當我執行下面的腳本時,它會創建所有 1000 個 ajax 請求,當事務達到約 3k 時,它從未完成。 所以我試圖制作基於slab的並行ajax請求,
如何創建一個接一個的並行 ajax 請求? 我想在完成第一個 100 個 ajax 響應后創建前 100 個並行 ajax 請求,然后創建第二個位置 200 個並行 ajax 請求。
這是我的數組
var tasks=[{100 urls},{200 urls},{400 urls},{600 urls},{800 urls},{1000 urls}];
$.each(tasks,function(index,item){
$.each(item.urls,function(key,val){
$.aja(val.url,function(response){
// .... do some work
});
});
});
每個 ajax 調用都是異步運行的。 所以你可以等待每個任務的異步 ajax 調用完成並運行下一個任務等等。
下面的腳本使用 Promise 模式( jquery.when )來等待完成每個任務的異步 ajax 調用。
var tasks=[{100 urls},{200 urls},{400 urls},{600 urls},{800 urls},{1000 urls}];
function runTasks(index) {
var item = tasks[index];
return $.when($.map(item.urls, function(key, val) {
return $.ajax(val.url);
})).then(function() {
if (tasks[index + 1]) {
return runTask(index + 1);
} else {
return true;
}
});
}
runTasks(0).then(function() {
// execute when all tasks done
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.