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

时间:2010-05-20 15:11:43

标签: jquery blockui

我有以下代码:.net mvc aspx page ...

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

$ .blockUI({message:'

处理......请等待

'});

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

$ unblockUI();

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

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

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

我该怎么做?

感谢您的反馈。

2 个答案:

答案 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 });