2010-05-20 78 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