所有AJAX请求完成后的操作

时间:2013-08-19 12:56:35

标签: jquery ajax

我试图在ajax之后执行一个动作,但我不能

$.each(LinkUnique,function(i){
        $.ajax({
            type: "POST",
            url: 'http://xxxx.net/',
            success: function(msg){
                if(msg.indexOf("http://") !=-1)
                    link = link+msg+"\n";
            }
        });
    });

这是脚本之后的下一个操作:

alert("Finish");

async: false不是一个好选择,因为我的页面完全停止了。

1 个答案:

答案 0 :(得分:3)

你可能正在等待所有的ajax调用完成,因为你正在做多个:

var xhrs = [],
    link = '';

$.each(LinkUnique,function(i){
    var xhr = $.ajax({
                  type: 'POST',
                  url : 'http://xxxx.net/'
              }).done(function(msg) {
                  if(msg.indexOf("http://") !=-1)
                      link = link+msg+"\n";
              });

    xhrs.push(xhr);
});

$.when.apply($, xhrs).then(function() {
    alert(link);
});