這是我的代碼
for (i = 0; i < 100; i ) {
$.ajax({
url: "APIurl",
type : "POST",
data : "a=addsgstkw",
success: function (data) {
alert(data);
}
});
}
我的問題是回圈中的ajax沒有執行到最后。它在運行幾次后停止。例如,在 10 次之后。 如何在回圈中運行 ajax?
uj5u.com熱心網友回復:
對于連接到同一域的并行網路請求的數量,存在特定于瀏覽器的限制。大多數(如果不是全部)現代瀏覽器都是如此。
如果您希望這些請求并行發生,請考慮創建一個需要執行的請求佇列。然后同時執行一定數量的這些 ajax 請求。每當這些 ajax 請求之一完成執行時,讓它從佇列中洗掉下一個并執行它。
像下面這樣的東西可能會起作用:
let request_queue = [];
for(let i = 0; i < 100; i ) {
request_queue.push({
url: 'APIUrl',
type: 'POST',
data: 'a=addsgstkw',
success: function(data) {
alert(data);
},
complete: function() {
// After this request finishes, whether it succeeds or fails, take the next request and execute it.
let next_request = request_queue.pop();
if(next_request) {
$.ajax(next_request);
}
}
});
}
// Starts two parallel network requests.
$.ajax(request_queue.pop());
$.ajax(request_queue.pop());
這將比并行運行每個請求慢(如果您的網路可以處理帶寬),但不幸的是,沒有真正解決這個問題的方法。為了限制您發出這些請求的速率,需要使用上述某些解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/392833.html
標籤:javascript 阿贾克斯
