我有一个机制可以运行ajax事务以使用长轮询技术,因此该请求将保持打开状态一段时间。但是我有另一种机制,每次页面进行加载或使用另一个ajax事务时,
ajaxStart ()
事件我绘制一个加载图标,并在事件检测到ajax事务完成时
ajaxComplete()
我隐藏了那个图标。
我的问题是,有没有办法知道我在ajaxStart和ajaxComplete上获取的ajaxTransaction不会在长时间轮询ajax事务的情况下什么都不做?
问候。
最佳答案
在进行长时间轮询的global: false
调用中设置$.ajax()
:
$.ajax({
global: false,
// the rest of your parameters
});
这将阻止此
$.ajax()
调用触发任何全局ajax事件:ajaxStart
,ajaxStop
,ajaxSend
,ajaxSuccess
,ajaxError
和ajaxComplete
。除非您已使用$.ajax()
全局禁用它们,否则代码中的其他$.ajaxSetup({global:false})
调用仍将照常触发这些事件。这是一个fiddle演示这一点。
文档页面:
$.ajax()
Global Ajax Event Handlers(此页面不完整;没有提到您可以在单个
global: false
调用上使用$.ajax()
。)关于javascript - 检测特定的ajax事务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31166305/