Javascript onbeforeunload-无法更改页面UI
在myJavascript onbeforeunload-无法更改页面UI,javascript,onbeforeunload,Javascript,Onbeforeunload,在myonbeforeunload函数中,我们将自动断开ActiveX控件与服务器的连接。 这个过程大约需要3或4秒钟(我们对此没有控制权),因此我想显示一条消息,让用户知道一旦控件断开连接,他们的刷新/导航离开/关闭窗口就会发生。我不想弹出警报(),只想向用户显示一条“异步”消息 但是,我似乎无法从onbeforeunload中对页面的UI进行任何更改。我不能使用我拥有的toast message类,甚至不能更改“status”div,因为它们似乎什么都没做 这是onbeforeuload功能
onbeforeunload
函数中,我们将自动断开ActiveX控件与服务器的连接。这个过程大约需要3或4秒钟(我们对此没有控制权),因此我想显示一条消息,让用户知道一旦控件断开连接,他们的刷新/导航离开/关闭窗口就会发生。我不想弹出
警报()
,只想向用户显示一条“异步”消息
但是,我似乎无法从onbeforeunload
中对页面的UI进行任何更改。我不能使用我拥有的toast message类,甚至不能更改“status”div
,因为它们似乎什么都没做
这是onbeforeuload
功能的限制吗?是我使用警报()
的唯一选项吗
编辑代码示例:
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();
}
这是
onbeforeuload
功能的一个限制
老实说,这种方法是有缺陷的,您应该考虑将应用程序更改为不需要在卸载前启用功能
如果需要断开服务器上的连接,可以通过长轮询或web套接字检测用户断开连接。我敢肯定ActiveX也是如此。代码示例会有帮助。唯一的问题是我们无法控制ActiveX,也无法控制“服务器”如何与之交互。ActiveX正在从服务器获取流。如果ActiveX在未调用disconnect的情况下关闭,服务器仍会认为它已连接(虽然它会在90秒后超时,但时间太长)。看来我必须使用alert()
。