JQuery BlockUI阻止消息不会立即显示

Rob*_*Rob 5 jquery blockui

我有以下代码.net mvc aspx页面...

//////////////////////

$ .blockUI({message:'

处理......请等待

'});

var registerOk = registerNewUser(); var createUserSubscriptionOK = createUserSubscription();

$ .unblockUI();

\\\\\\\\\\\\

直到第二个函数完成时才会显示块消息.两个函数都收集表单数据,然后对数据库进行异步调用.

我需要立即显示消息,同时触发两个函数,然后一旦完成,ui就会被解锁...

我该怎么做呢?

感谢您的任何反馈.

Mar*_*tia 8

嗨,我没有这个答案,但我只是想报告我在firefox 3.5.9中看到同样的问题.

我正在尝试使用blockUI来显示带有动画gif的等待消息,同时服务器处理通过表单发送的信息.

在$("#form")中.report(function(){首先我调用blockUI:$ .blockUI({message:-image here-处理你的请求,请稍候......'});

然后我准备要发送到服务器的数据并使用ajax同步调用发布它们:$ .ajax({type:"POST",url:'/ submitForm /'+ typeName,data:postdata +"&"+ sData, cache:false,async:false});

最后我解锁$ .unblockUI();

我注意到它适用于Konqueror(在KDE4中),它显示了等待窗口,动画gif使背景变暗,最后消失.

所以问题可能与firefox有关,或者可能与某些不会影响特定浏览器的错误配置有关.

我希望这些信息对某些专家有用,可以确定实际问题是什么.

我还要感谢任何反馈.

编辑:

你好,

我不知道这是否仍然相关,但最终我设法让它发挥作用.问题是我正在使用ajax进行同步调用(submitForm调用中的"async:false"位).BlockUI被认为使异步调用工作就好像它是同步的,即阻塞接口.如果调用已经是同步的,则不需要阻止ui,因为这是同步调用的正常行为!

所以对我来说,只需删除"async:false"部分就可以了.

我希望这有帮助.


nao*_*aor 7

尝试通过将fadeIn设置为0来消除blockUI的异步行为:

$.blockUI({ message: $('#domMessage'), fadeIn: 0 });
Run Code Online (Sandbox Code Playgroud)