2010-05-20 116 views
5

我有以下代码和一个.net mvc aspx页面...JQuery BlockUI阻止消息不会立即显示

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

$ .blockUI({message:'

正在处理...请稍候

'});

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

$ .unblockUI();

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

块消息不显示,直到只是围绕着第二个函数完成的时间。 这两个函数收集表单数据,然后进行异步调用数据库。

我需要的信息立即显示,同时具有防火功能,那么一旦这两个都完成后,用户界面得到畅通......

我该怎么办呢?

感谢您的任何反馈意见。

回答

8

嗨,我没有这个答案,但我只是想报告,我看到在Firefox 3.5.9相同的问题。

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

里面的 $( “#形式”)提交(函数(){ 首先我打电话blockUI: $ .blockUI({消息:-image这里 - 处理您的请求,请稍候...”} );

然后我准备数据被发送到服务器,并使用一个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”部分使它工作。

我希望这会有所帮助。

+0

这奏效了,我:) – 2013-02-07 08:53:07

6

尝试通过淡入设置为0消除blockUI的异步行为:

$.blockUI({ message: $('#domMessage'), fadeIn: 0 }); 
+0

这个固定我的问题。谢谢! – Angela 2013-10-29 15:36:35