2013-02-13 63 views
0

在我的onbeforeunload函數中,我們正在自動斷開ActiveX控件與服務器的連接。
這個過程大約需要3到4秒(我們無法控制),所以我想顯示一條消息讓用戶知道,只要控件斷開,它們的刷新/導航離開/關閉窗口就會發生。我不想彈出一個alert(),只想給用戶顯示「異步」消息。onbeforeunload - 無法更改頁面UI

但是,我似乎無法對onbeforeunload內頁面的UI進行任何更改。我不能使用我已經擁有的吐司消息類,或者甚至改變「狀態」div,因爲他們似乎沒有做任何事情。

這是onbeforeunload函數的限制嗎?我唯一的選擇是使用alert()

編輯
代碼例如:

function handleWindowOnBeforeUnload() { 
    //alert('Disconnecting from client...'); //Would rather not use an alert() 
    ShowToast('Closing connection...');   //Doesn't show 
    $('#statusDiv').html('Auto-disconnect...'); //Neither does this 
    //This is what takes ~4 seconds 
    acx.stopConnection(); 
} 
+0

代碼示例會有幫助 – Christian 2013-02-13 17:32:41

回答

1

這是onbeforeunload功能的限制。

說實話,這種方法是有缺陷的,你應該看看改變你的應用程序不需要onbeforeunload函數。

如果您需要斷開服務器上的連接,可以通過長輪詢或Web套接字來檢測用戶斷開連接。我很確定這與ActiveX相同。

+0

唯一的問題是我們沒有任何對ActiveX的控制,也不知道「服務器」如何與它進行交互。該ActiveX正在從服務器獲取流。如果ActiveX沒有調用斷開連接就關閉,服務器仍然認爲它已連接(雖然它會在90秒後超時,但這太長了)。看起來我必須使用'alert()'。 – Marcus 2013-02-13 17:43:11