为特定请求禁用ajaxStart()和ajaxStop()

前端之家收集整理的这篇文章主要介绍了为特定请求禁用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()中引入一个全局变量,它将在函数的第一行返回,但这似乎完全杀死了加载屏幕。

任何想法如何可以实现?

我想到了..

在选项对象.ajax()中有一个属性称为全局。

如果设置为false,它不会触发调用的ajaxStart事件。

$.ajax({
    timeout: 35000,global: false,// this makes sure ajaxStart is not triggered
    dataType: 'json',complete: longpoll
});
原文链接:https://www.f2er.com/ajax/160906.html

猜你在找的Ajax相关文章