如何知道最后一次AJAX调用在jQuery中完成?

问题描述:

我的一个页面有大约5个jQuery AJAX调用,只要页面加载就会触发。我知道我可以单独跟踪每个AJAX调用并知道它何时完成,但有什么方法可以将它们作为一个整体进行跟踪?这样,我会知道最后一次AJAX调用何时完成,并且可以发出UI更改的信号。如何知道最后一次AJAX调用在jQuery中完成?

我想我可以保持“有效”呼叫数量的运行计数,并在每次呼叫完成时检查该号码,但有没有更好的雄辩解决方案?

看看全球ajaxStartajaxStop事件。

下面是我用他们:

$('body') 
    // Set up loading animation for requests. 
    .ajaxStart(function() { 
     $(this).addClass('loading'); 
    }) 
    .ajaxStop(function() { 
     $(this).removeClass('loading'); 
    }); 
+0

适合我的作品。 – 2015-07-21 09:37:29

你可以使用队列/出队这对于任何功能有用来电:

http://jqueryfordesigners.com/api-queue-dequeue/

你可以把你的UI功能的队列末尾。

不好的一面是它会导致你的功能同步。

ajax对象有一个特定的方法:complete()当请求结束时(执行成功和错误回调后)触发。

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: "name=John&location=Boston", 
    complete: function(){ 
     alert("action finished"); 
    } 
});