我使用.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()中引入一个全局变量,它将在函数的第一行返回,但这似乎完全杀死了加载屏幕。
任何想法如何可以实现?
我想到了..
在选项对象.ajax()中有一个属性称为全局。
如果设置为false,它不会触发调用的ajaxStart事件。
$.ajax({
timeout: 35000,global: false,// this makes sure ajaxStart is not triggered
dataType: 'json',complete: longpoll
});