Najaxリクエストを行う必要があります。$ .ajax呼び出しごとに遅延が返されますが、すぐにajaxリクエストも実行されます。私がやりたいのは、N個のリクエストすべてに対してDeferredsを取得することですが、それらを徐々に実行するだけです(たとえば、setIntervalループを介して)。これを行うことは可能ですか?
質問する
70 次
1 に答える
1
ブラウザー自体が、1 つのサーバーに対して行われる並列 ajax 要求の数を制限します (たとえば、同時に 4 つまたは 8 つ)。
制限が十分でない場合は、キューを作成していくつかのクエリをスケジュールできます。
var queue = [];
queue.push(function() {
return $.ajax(...);
});
queue.push(function() {
return $.ajax(...);
});
...
次に、たとえば 2 つのクエリを実行し、1 つが終了するたびに、キューから別のクエリを取得して実行します。
function runNext() {
var fun = queue.shift();
if (fun) {
fun().always(runNext);
}
}
for (var i = 0; i < 2; ++i) {
runNext();
}
于 2012-07-05T17:14:00.123 に答える