gpt4 book ai didi

jquery - 关闭某些 ajax 调用的 nprogress

转载 作者:行者123 更新时间:2023-12-01 08:34:45 26 4
gpt4 key购买 nike

我正在使用 NProgress 来显示 AJAX 请求何时运行。它工作得很好,但我有一个 AJAX 请求,我想在后台运行而不向用户显示进度条。

我将其绑定(bind)到 jQuery 的 ajaxSendajaxComplete 事件,以便所有 $.ajax() 调用都将显示 NProgress。

$(document).bind("ajaxSend", function() { 
NProgress.start();
}).bind("ajaxComplete", function() {
NProgress.done();
});

我正在进行的 AJAX 调用如下所示:

setInterval(function() {
// Setting to not display nprogress here?
$.ajax({
type: "POST",
url: "testurl.aspx",
data: post,
async: true,
cache: false,
success: function(msg) {
;//
},
complete: function(msg) {
;//
},
error: function(msg) {
;//
}
});
}, 10000);

最佳答案

要禁用单个请求的全局 AJAX 事件处理程序,您可以将 global 属性设置为 false:

setInterval(function() {
$.ajax({
global: false, // add this
type: "POST",
url: "testurl.aspx",
data: post,
cache: false,
// other properties...
});
}, 10000);

不过,还有其他一些事情需要注意。首先,bind() 很久以前就被弃用了。您应该使用 on()现在改为绑定(bind)事件处理程序。还要仔细检查您正在使用的 jQuery 版本。如果您需要旧版 IE 支持,它应该是 v3.x 以及 jQuery.migrate。

其次,AJAX 轮询是一种反模式,即使以相对较高的间隔(如 10 秒)使用也是如此,因为它会给服务器带来不必要的负载。如果这是面向公众的网站,并且您希望保持 UI 和服务器端数据紧密同步,请考虑使用 WebSockets 之类的东西。

关于jquery - 关闭某些 ajax 调用的 nprogress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57894898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com