在同步调用之前调用函数

use*_*021 5 javascript ajax jquery jquery-plugins blockui

我有一个简单的问题(但答案似乎并不简单).

我的代码中有一个同步的AJAX调用,我想在这个同步调用之前调用一个函数.

我想打电话的功能很简单

$.blockUI();
Run Code Online (Sandbox Code Playgroud)

来自jQuery BlockUI插件.

我只是尝试在$ .ajax调用之前放置该行,但是在同步调用之后似乎调用了blockUI.

然后我尝试使用$ .ajax的beforeSend选项,与上面的问题相同.

提前感谢您提出的任何答案(除非使用异步调用,这在我的情况下是不可能的......)

代码可在此处获取:http://jsfiddle.net/vWsus/2/

epa*_*llo 4

同步调用很糟糕,它们会锁定浏览器,如果调用没有返回,则不是良好的用户体验。您遇到的问题是同步调用锁定了浏览器,因此 DOM 永远没有时间重绘。您需要给 DOM 更新时间,因此在进行 Ajax 调用之前设置超时。

$.blockUI({ message: '<p>foo</p>' });
window.setTimeout( ajxCallFnc, 100);
Run Code Online (Sandbox Code Playgroud)