我的一个页面有大约5个jQuery AJAX调用,一旦页面加载就会启动。我知道我可以单独跟踪每个AJAX呼叫并知道它何时完成,但有没有办法跟踪它们的整体情况?这样,我就知道上次AJAX调用何时完成,我可以发出UI更改信号。
我想我可以保持“活动”呼叫数量的运行计数,并在每次呼叫完成时检查该号码,但是是否有更有说服力的解决方案?
答案 0 :(得分:15)
以下是我如何使用它们:
$('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" );
}
});