gpt4 book ai didi

javascript - 在任何 ajax 回调中出现运行时错误后,ajaxStop 事件停止触发

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:00:57 25 4
gpt4 key购买 nike

让我们看看我的代码:

$("#senderr").on("click", function(){
$.get("/echo/json").then(function(res){
//let's imagine something happen
throw "error";
});
});

$("#sendok").on("click", function(){
$.get("/echo/json").then(function(res){
$("#log").append("<li>send ok</li>");
});
});

$(document).on("ajaxStart", function(){
$("#log").append("<li>start</li>");
});

$(document).on("ajaxStop", function(){
$("#log").append("<li>stop</li>");
});

JSFiddle

如果您按“发送确定”,您可以看到 ajaxStart 和 ajaxStop 事件已成功触发。但是,如果您只按一次在 ajax 回调中抛出运行时错误的“send err”按钮,之前的“send ok”行为将永远不会再次起作用——ajaxStop 事件停止触发。

为什么 jQuery 这样做?除了到处使用 try-catch 之外,我还能做些什么来防止这种情况发生?

最佳答案

这对我有用:

jQuery(window).on('error', function (e) {    
// This tells jQuery no more ajax Requests are active
// (this way Global start/stop is triggered again on next Request)
jQuery.active--;
//Do something to handle the error
});

关于javascript - 在任何 ajax 回调中出现运行时错误后,ajaxStop 事件停止触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25522276/

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