让我试着理解......
阻止了用户界面$(document).ajaxStart(function() {
$.blockUI({
message: '<h4><i class="fa fa-circle-o-notch fa-spin fa-fw"></i> loading...</h4>'
})
}).ajaxStop($.unblockUI);
有时,当代码抛出一些错误时:
冻结屏幕上的加载消息不会消失:
原因是:
ajaxStart()
启动时,会调用$.blockUI()
。
在ajaxStart()
成功完成执行之前,它遇到错误。
ajaxStop()
并且永远不会阻止用户界面($.unblockUI
)
因此,当ajaxStart()
和ajaxStop()
之间出现错误时,我正在寻找的是一种显示自定义消息的方法。而不是代码暂停/冻结javascript错误。
此外,当我尝试@Raghav's suggestion时,它不会冻结屏幕。
$(document).ajaxStart(function() {
$.blockUI({
message: '<h4><i class="fa fa-circle-o-notch fa-spin fa-fw"></i> loading...</h4>'
})
throw Error;
debugger;
}).ajaxStop($.unblockUI).ajaxError($.unblockUI);
没有意义吗?
答案 0 :(得分:1)
您是否尝试使用ajaxError()
处理错误请参阅:https://api.jquery.com/ajaxError/
$(document).ajaxError(function() {
$.unblockUI();
// Display error message here
alert('Some error message');
});
$(document).ajaxStop(function() {$.unblockUI();});
$(document).ajaxStart(function() {
$.blockUI({
message: '<h4><i class="fa fa-circle-o-notch fa-spin fa-fw"></i>loading...</h4>'
})
});
您还可以获取错误消息。有关详细信息,请参阅文档。
$(document).ajaxError(function( event, jqxhr, settings, thrownError ) {
$.unblockUI();
console.log(event, jqxhr, settings, thrownError);
});