我有一些使用async = false进行Ajax调用的功能。我正在使用以下代码显示等待屏幕,显示async = false的ajax调用
$(document).ajaxSend(function (event, request, settings) {
$("#__smoke_screen").show();
});
$(document).ajaxComplete(function (event, request, settings) {
$("#__smoke_screen").hide();
});
要显示等待屏幕但它不适用于同步呼叫。有什么办法可以显示任何类型的同步呼叫等待消息。 PS:我不能async = true。我不能这样做。
感谢
首先同步Ajax调用是一个可怕的用户体验。你应该重新设计使它们异步。其次,在ajax调用过程中,为了等待msg所要做的所有事情,ajax在调用ajax调用之前放置消息,然后在ajax调用之后将其拉下。你可以从字面上制作你自己的函数,执行ajax调用,然后把它拉下来。它是同步的,所以ajax调用只是一个普通的函数调用。 – jfriend00 2014-12-05 03:20:03
为什么你会说你不能做异步?这只是正确的代码设计来做异步Ajax的问题。 – jfriend00 2014-12-05 03:29:45
建议:在显示烟雾屏幕或其他“请稍候”屏幕时,请计数“show_please_wait”请求的数量,并且不要隐藏屏幕,直到收到相同数量的“hide_please_wait”请求。这有助于避免您在一行中进行两个异步调用,第一个完成并隐藏屏幕,第二个仍在运行的情况。 – 2014-12-05 03:47:47