- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
上下文:
我开发了一个需要身份验证的应用程序。该应用程序使用事件与服务器对话。当服务器应答时,一些事件将发送到客户端 (UI)。
问题:
当用户关闭页面时,需要在服务器上进行注销。使用我的架构,可以轻松调用执行此注销的方法。但我希望用户在关闭网页之前显示注销进度。事实上,我想仅在特定事件(例如:disconnection_success)受到好评时关闭网页。此外,不要启动另一个网页非常重要,因为注销成功时会在第一个网页上收到事件。 (因为对话框完成后抛出 XMLHttpRequest)
测试:
我已经使用 onbeforeunload 做了一些测试,但似乎很难自定义弹出窗口。
您有解决问题的想法吗?
BR
最佳答案
这存在一些问题,但您的方向是正确的。您是对的,您应该使用 onbeforeunload ,因为它是您在关闭浏览器窗口时可以触发的唯一事件。 (我知道你可以使用 onunload,但那时你没有时间做任何事情。)这里的问题是你想要执行多少代码。 onbeforeunload 在开始卸载页面之前不会给您太多时间。
顺便说一句,onbeforeunload 有两种不同的场景:
我实际上有一个与此非常相似的问题,最终自己解决了:How to logout during onbeforeunload/onunload using Javascript
在您的问题中,您声明您希望在他们注销时显示进度条。当用户关闭浏览器时这是不可能的。在他们关闭窗口的那一刻,您已经失去了所有控制,除了 onbeforeunload (和 onunload 但不使用它),这就是为什么您的代码需要在那里执行。话虽这么说,您可以锚定注销按钮(我假设您的应用程序上有一个)并让它显示进度栏。
想想如果您确实拥有这种控件会发生什么 - 当用户尝试关闭浏览器窗口时您可以弹出窗口和进度条。您可以弹出任何内容并限制用户使用任何可靠的功能。这就是为什么它被编程为 onbeforeunload(和 unload)事件是唯一可能访问浏览器关闭的事件。这些事件有一些非常严格的指导方针,以防止任何可能的误用。我理解你遇到的问题,我就在那里,它很臭,但我认为如果你要使用 onbeforeunload,这是你唯一的选择。
关于javascript - 使用 onbeforeunload 关闭窗口之前的等待事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16922157/
我是一名优秀的程序员,十分优秀!