我有以下代码:.net mvc aspx page ...
//////////////////////
$ .blockUI({message:'
var registerOk = registerNewUser(); var createUserSubscriptionOK = createUserSubscription();
$ unblockUI();
\\\\\\\\\\\\
直到第二个函数完成的时间才显示块消息。 两个函数都收集表单数据,然后对数据库进行异步调用。
我需要立即显示消息,同时触发两个函数,然后一旦完成,ui就会被解锁...
我该怎么做?
感谢您的反馈。
答案 0 :(得分:8)
您好我没有答案,但我只是想报告我在firefox 3.5.9中看到同样的问题。
我正在尝试使用blockUI来显示带有动画gif的等待消息,同时服务器处理通过表单发送的信息。
里面 $(“#form”)。submit(function(){ 首先我调用blockUI: $ .blockUI({message:-image here-处理您的请求,请稍候......'});
然后我准备要发送到服务器的数据并使用ajax同步调用发布它们: $就({ 类型:“POST”, url:'/ submitForm /'+ typeName, data:postdata +“&”+ sData, cache:false, async:false });
最后我解锁了 $ .unblockUI();
我注意到它与Konqueror一起使用(在KDE4中),它显示了等待窗口,动画gif使背景变暗,最后消失。
因此问题可能与firefox有关,或者可能与某些不会影响特定浏览器的错误配置有关。
我希望这些信息对某些专家有用,可以找出实际问题。
我还要感谢任何反馈。
编辑:
您好,
我不知道这是否仍然相关,但最终我设法让它发挥作用。问题是我正在使用ajax进行同步调用(submitForm调用中的“async:false”位)。 BlockUI被认为使异步调用工作就好像它是同步的,即阻塞接口。如果调用已经是同步的,则不需要阻止ui,因为这是同步调用的正常行为!
所以对我来说,只需删除“async:false”部分就可以了。
我希望这会有所帮助。
答案 1 :(得分:7)
尝试通过将fadeIn设置为0来消除blockUI的异步行为:
$.blockUI({ message: $('#domMessage'), fadeIn: 0 });