知道最后一次AJAX调用何时在jQuery中完成的方法?

时间:2009-07-28 20:00:14

标签: jquery ajax

我的一个页面有大约5个jQuery AJAX调用,一旦页面加载就会启动。我知道我可以单独跟踪每个AJAX呼叫并知道它何时完成,但有没有办法跟踪它们的整体情况?这样,我就知道上次AJAX调用何时完成,我可以发出UI更改信号。

我想我可以保持“活动”呼叫数量的运行计数,并在每次呼叫完成时检查该号码,但是是否有更有说服力的解决方案?

3 个答案:

答案 0 :(得分:15)

查看全球ajaxStartajaxStop事件。

以下是我如何使用它们:

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

答案 1 :(得分:0)

您可以使用对任何函数调用都有用的queue / dequeue:

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

您可以将UI功能放在队列的末尾。

缺点是它会使你的功能同步。

答案 2 :(得分:0)

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

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