javascript - 使用相同 AJAX 函数的多个 AJAX 调用

标签 javascript jquery ajax

我希望快速连续地触发多个 jQuery AJAX 请求,因此响应不会在下一个请求之前出现。但是,我确实想使用 success 函数处理这些响应中的每一个。

使用以下代码,前两个响应将被忽略,只有最后一个响应。

$('#button').click(function() {
    var num = 3;
    for(var i=0;i<num;i++)
        ajaxCall(i);
}


function ajaxCall(data){
    $.ajax({
        url: '/echo/html/',
        success: function(msg) {
            alert(msg);
        }
    });
}

但是我正在努力使所有三个警报都会显示。似乎每次调用 ajaxCall 函数时,它都会使用与前一次相同的“对象”,而不是实例化一个新对象,这正是我想要做的。

最佳答案

试试这个(使用 Deferred Object )

$('#button').click(function() {
    var num = 3;
    for(var i=0;i<num;i++) {
        ajaxCall(i).done(function(data) 
           { 
             alert(data) 
           }
        );
     }
});


function ajaxCall(data){
    return $.ajax({
        url: '/echo/html/'
    });
}

关于javascript - 使用相同 AJAX 函数的多个 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13613287/

相关文章:

php - Wordpress Ajax 用于搜索结果 - 查询仅返回 1 个结果

javascript - 如何添加直到稍后才被解析的 HTML 元素?

javascript - 使用 JQuery 设置隐藏字段的值

javascript - 如何根据对属性的引用确定父对象

javascript - 过滤一个字段具有多个值的属性 - List.js 和 Filter.js

javascript - 禁用 HTML 中表单的所有元素(提交按钮除外)?

javascript - 我可以在没有 Webpack 的情况下使用 Angular 6 吗?

javascript - 使用纯 JS 对 DOM 元素进行排序

javascript - FullCalendar gotoDate 丢失多个日历的放置事件

javascript - 如何绘制可以应对非常大数据量的 JavaScript 图表?