小编典典

等待jQuery AJAX响应

ajax

我有一个页面,使用被称为100次(async:true)的jQuery.ajax,问题是,当它们都被加载时,我需要系统等待所有100次调用返回后才能继续。我将如何处理?

提前致谢!:)

更新:

这些调用在for()循环中进行(其中有100个:)


阅读 287

收藏
2020-07-26

共1个答案

小编典典

最好的方法是使用$.when。您可以按以下方式使用它:

$.when(
    $.ajax({/*settings*/}),
    $.ajax({/*settings*/}),
    $.ajax({/*settings*/}),
    $.ajax({/*settings*/}),
).then(function() {
    // when all AJAX requests are complete
});

另外,如果您在数组中拥有所有AJAX调用,则可以使用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
});
2020-07-26