ajaxStart()只调用一次,但ajaxComplete()调用多次

时间:2013-02-25 17:22:54

标签: javascript jquery

我想在我的页面上调用每个AJAX请求时做一些事情。

我读了here那个

  

ajaxStart(全球事件)

     

如果启动了Ajax请求并且当前没有其他Ajax请求正在运行,则会广播此事件。

  

ajaxComplete(全球事件)

     

此事件与complete事件的行为相同,并且每次Ajax请求完成时都会触发。

这意味着我只能跟踪一个ajax事件的开始而不是每个单独的请求?

$(document).ajaxStart(function () {
    var t = new Date(),
        h = t.getHours(),
        m = t.getMinutes(),
        s = t.getSeconds(),
        ms = t.getMilliseconds();
    console.log("Triggered ajaxStart handler   at " + h + ":" + m + ":" + s + ":" + ms);
});


$(document).ajaxComplete(function () {
    var t = new Date(),
        h = t.getHours(),
        m = t.getMinutes(),
        s = t.getSeconds(),
        ms = t.getMilliseconds();
    console.log("Triggered ajaxComplete handler at " + h + ":" + m + ":" + s + ":" + ms);
});

给了我

Triggered ajaxStart handler    at 11:14:33:409 
Triggered ajaxComplete handler at 11:14:33:480 
Triggered ajaxComplete handler at 11:14:33:489 
Triggered ajaxComplete handler at 11:14:33:491 
Triggered ajaxComplete handler at 11:14:33:492 
Triggered ajaxComplete handler at 11:14:33:535 
Triggered ajaxComplete handler at 11:14:33:539 
Triggered ajaxComplete handler at 11:14:33:567 
Triggered ajaxComplete handler at 11:14:33:569 

有没有办法记录每个ajax启动,所以我可以为每个ajax事件附加一个偶数?

1 个答案:

答案 0 :(得分:10)

您想要为每个 AJAX请求发送的.ajaxSend事件,而不仅仅是第一个未完成的事件。