jQuery 进行动态 ajax 调用并等待它们完成

标签 jquery

我需要进行多次ajax调用(确切的数量是可变的)并等待它们全部完成。我当前的代码如下:

ajaxRequests = new Array();

ajaxRequests.push(function(){
                return jQuery.post(url: "someUrl",
                                    dataType: "json",
                                    data:  yourJsonData
            });



jQuery.when.apply(jQuery, ajaxRequests).done(function(){
    alert("ajax requests done");
});

不幸的是,上面的代码没有等待ajax请求完成。任何帮助将不胜感激。

最佳答案

答案如下:复制自jQuery .when troubleshooting with variable number of arguments

// Array of requests
var requests = Array();
requests.push($.get('responsePage.php?data=foo'));
requests.push($.get('responsePage.php?data=bar'));

var defer = $.when.apply($, requests);
defer.done(function(){

    // This is executed only after every ajax request has been completed

    $.each(arguments, function(index, responseData){
        // "responseData" will contain an array of response information for each specific request
    });

});

关于jQuery 进行动态 ajax 调用并等待它们完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17329294/

相关文章:

javascript - ajax 调用中使用的 javascript 中的全局变量

JavaScript 所见即所得文本编辑器

javascript - JQuery slider 故障 - 跳跃

jquery - 单击外部 > 隐藏()

javascript - 无法通过 JavaScript 模拟点击提交按钮

jquery - 如何使用最少量的 Twitter Bootstrap 来获得流畅的好处?

Jquery next() 问题

javascript - 在 JSP 中创建模式对话框并执行 POST 操作

jquery - 如何将数据属性字符串值转换为html元素?

javascript - 使用 jQuery 删除表但不删除表单和字段