我有一种方法可以阻塞UI,直到接收到ajax响应为止。因此,将计时器增加1秒钟并阻止加载程序,直到$.active == true
,这意味着没有待处理的ajax请求。
但是,这里的问题是,如果抛出任何jquery错误/ ajax错误并且未对其进行处理,则$.active
将始终为1。该应用程序被图像阻止,并且永远不会变为真。知道这个问题有什么替代方案或解决方案吗?
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();
}
}