javascript - 如果 ajax 调用抛出意外错误,$.active 将始终为 1
问题描述
我有一种方法可以阻止 UI 直到收到 ajax 响应。因此将 1 秒添加到计时器并阻止加载程序 until $.active == true
,这意味着没有待处理的 ajax 请求。
但是,这里的问题是,如果抛出任何 jquery 错误/ajax 错误并且未处理,$.active
则始终为 1。应用程序被图像阻塞并且永远不会变为 true。知道这个问题的替代方案或解决方案是什么吗?
function startLoader(timeout, delay) {
loader = setTimeout(function() {
$.blockUI({
message: '<img "a.png" alt="Loader"/>',
});
}, delay /*loader delay*/ );
checkPendingRequest();
}
function checkPendingRequest() {
if ($.active > 0) {
window.setTimeout(checkPendingRequest, 1000);
} else {
stopLoaderAjax();
}
}
解决方案
推荐阅读
- java - 公式未通过 Java + Apache POI 进行评估
- javascript - 为什么 AbortError:操作被中止。html5视频的更新时间是什么时候?
- php - 如何插入文件 csv symfony 4
- c++ - 返回 void 或非 void 类型的函数参数
- c# - 如何使用 HttpClient 作为正文参数将 CSV 文件作为流上传?
- c++ - 如何在写入图标(.ico)时为鼠标光标应用遮罩
- c# - 勾股定理检查细胞是否在半径内
- django - 不能在我的一个模型中覆盖“路由”方法
- javascript - 高图表。如何将 yAxis 标题和 yAxis 标签对齐在一行中?
- java - 如何在多个对象上正确触发 Drools 规则?