Eax*_*Eax 18 ajax jquery jquery-deferred
我有一个页面,使用被称为100次的jQuery .ajax(async:true),问题是,当它们全部被加载时,我需要系统在继续之前等待所有100个调用返回.我该怎么做?
提前致谢!:)
更新:
这些调用是在for()循环中进行的(其中有100个:))
lon*_*day 36
这样做的好方法是$.when.您可以按如下方式使用:
$.when(
$.ajax({/*settings*/}),
$.ajax({/*settings*/}),
$.ajax({/*settings*/}),
$.ajax({/*settings*/}),
).then(function() {
// when all AJAX requests are complete
});
Run Code Online (Sandbox Code Playgroud)
或者,如果您在阵列中拥有所有AJAX调用,则可以使用apply:
$.when.apply($, ajaxReqs);
Run Code Online (Sandbox Code Playgroud)
请注意,这至少需要jQuery 1.5.
要将AJAX请求添加到数组,请执行以下操作:
var ajaxReqs = [];
for (var i = 0; i < 100; i++) {
ajaxReqs.push($.ajax({
/* AJAX settings */
});
}
$.when.apply($, ajaxReqs).then(function() {
// all requests are complete
});
Run Code Online (Sandbox Code Playgroud)