我有一个机制可以运行ajax事务以使用长轮询技术,因此该请求将保持打开状态一段时间。但是我有另一种机制,每次页面进行加载或使用另一个ajax事务时,

   ajaxStart ()


事件我绘制一个加载图标,并在事件检测到ajax事务完成时

   ajaxComplete()


我隐藏了那个图标。

我的问题是,有没有办法知道我在ajaxStart和ajaxComplete上获取的ajaxTransaction不会在长时间轮询ajax事务的情况下什么都不做?

问候。

最佳答案

在进行长时间轮询的global: false调用中设置$.ajax()

$.ajax({
    global: false,
    // the rest of your parameters
});


这将阻止此$.ajax()调用触发任何全局ajax事件:ajaxStartajaxStopajaxSendajaxSuccessajaxErrorajaxComplete。除非您已使用$.ajax()全局禁用它们,否则代码中的其他$.ajaxSetup({global:false})调用仍将照常触发这些事件。

这是一个fiddle演示这一点。

文档页面:

$.ajax()

Global Ajax Event Handlers(此页面不完整;没有提到您可以在单个global: false调用上使用$.ajax()。)

关于javascript - 检测特定的ajax事务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31166305/

10-10 23:50