javascript - ajaxStart() 只被调用一次,而 ajaxComplete() 被调用多次

标签 javascript jquery

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

我读了here那个

ajaxStart (Global Event)

This event is broadcast if an Ajax request is started and no other Ajax requests are currently running.

ajaxComplete (Global Event)

This event behaves the same as the complete event and will be triggered every time an Ajax request finishes.

这意味着我只能跟踪一个 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 启动,以便我可以将 even 附加到每个 ajax 事件?

最佳答案

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

关于javascript - ajaxStart() 只被调用一次,而 ajaxComplete() 被调用多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15072669/

相关文章:

javascript - Bootstrap Navbar 折叠下拉菜单

javascript - 使 Facebook 插件响应

javascript - 让一个div在点击时滑动

javascript - 如何知道 highchart 列 r shiny plot 中点击栏的信息

javascript - 我的 jquery 代码没有动画

javascript - 在 JScript/Javascript 中创建 YYYY-MM-DD 日期范围

javascript - 在application.html.erb中添加js脚本

jquery - 当单击表单内的链接时,如何停止触发表单的 ajax 事件?

javascript - 获取被单击元素的属性值

javascript - AngularJS 分离 Controller ,参数不是函数,它是未定义的