对特定请求禁用ajaxStart()和ajaxStop()
我正在使用.ajaxStart()和.ajaxStop()在提出ajax请求时显示模式。(在开始和停止之间)
现在,我想添加一个longpoll函数,该函数一直等待通知,类似于本网站左上角的通知。
我的问题现在在于仅针对longpolling请求禁用此模式。
在处理程序上注册“加载屏幕”:
$(document).ajaxStart(handleAjaxStart);$(document).ajaxStop(handleAjaxStop);
我的longpoll函数:
$.ajax({ timeout: 35000,
url: longPollUrl,
success: function(data){
if(data.queCount) $('#numQueCount').html(data.queCount);
if(data.queAccept) $('#numQueAccept').html(data.queAccept);
},
dataType: 'json',
complete: longpoll
});
我试过了:
$().off('ajaxStart');$().off('ajaxStop');
..并在开始轮询后重新连接处理程序,但没有任何乐趣。
我还尝试向其中引入一个全局变量handleAjaxStart()
,该变量将在函数的第一行返回,但这似乎完全破坏了加载屏幕。
有什么想法可以实现吗?
回答:
我想到了..
options对象中.ajax()
有一个名为的属性global
。
如果设置为false,则不会触发ajaxStart
该呼叫事件。
$.ajax({ timeout: 35000,
url: longPollUrl,
success: function(data){
if(data.queCount) $('#numQueCount').html(data.queCount);
if(data.queAccept) $('#numQueAccept').html(data.queAccept);
},
global: false, // this makes sure ajaxStart is not triggered
dataType: 'json',
complete: longpoll
});
以上是 对特定请求禁用ajaxStart()和ajaxStop() 的全部内容, 来源链接: utcz.com/qa/398881.html