javascript - Window.addcloseHandler 和 Window.addwindowClosingHandler 不区分浏览器关闭和浏览器刷新事件

标签 javascript gwt event-handling

我正在使用 GWT,在我的应用程序中,我想清除 session 历史记录并在关闭浏览器时强制注销用户。但是单击刷新后,用户应该登录。我为此编写了以下代码。

Window.addCloseHandler(new CloseHandler<Window>() {
    @Override
    public void onClose(CloseEvent<Window> event) {
        logoutRPC();
    }
});

Window.addWindowClosingHandler(new Window.ClosingHandler() {
    public void onWindowClosing(Window.ClosingEvent closingEvent) {
        logoutRPC();
    }
});

但是从上述两方面来看,我无法实现刷新调用 GWT.closeHandler() 的功能。

如何区分这两个事件?

最佳答案

无法区分客户端浏览器窗口的刷新和关闭。

本质上,您的 GWT 应用程序正在浏览器窗口的范围内运行。 如果刷新,应用程序的实例将被删除,浏览器加载 URL,然后创建一个新的实例。

您可以在调试 GWT 应用程序时看到这一点 onModuleLoad()在应用程序类的新实例上再次调用函数。

关于javascript - Window.addcloseHandler 和 Window.addwindowClosingHandler 不区分浏览器关闭和浏览器刷新事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14914360/

相关文章:

c# - 从 c# 到 vb.net 的代码转换,包括事件处理程序

javascript - 颜色在不同浏览器中显示不同

javascript - 如何在 Angular2 中访问来自 GET 操作的 json

javascript - Jquery一旦选择另一个按钮就禁用

java - 本地可以使用GAE吗?

java - 为什么这段代码不绘制和移动矩形?

javascript - 不允许在最大值和最小值之间输入数字

GWT JSNI javascript 到 Java 不工作

java - 如何在 mvn :package 中包含 GWT 生成的文件

c# - 将事件处理程序附加到 mshtml.DispHTMLInputElement