使用相同的AJAX函数进行多次AJAX调用

时间:2012-11-28 19:51:52

标签: 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函数时,它都使用与前一次相同的“对象”,而不是实例化一个新对象,这就是我想要做的。

1 个答案:

答案 0 :(得分:-1)

试试这个(使用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/'
    });
}