我有一个页面,使用被称为100次(async:true)的jQuery.ajax,问题是,当它们都被加载时,我需要系统等待所有100次调用返回后才能继续。我将如何处理?
提前致谢!:)
更新:
这些调用在for()循环中进行(其中有100个:)
最好的方法是使用$.when。您可以按以下方式使用它:
$.when
$.when( $.ajax({/*settings*/}), $.ajax({/*settings*/}), $.ajax({/*settings*/}), $.ajax({/*settings*/}), ).then(function() { // when all AJAX requests are complete });
另外,如果您在数组中拥有所有AJAX调用,则可以使用apply:
apply
$.when.apply($, ajaxReqs);
请注意,这至少需要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 });