2013-02-13 30 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