Window.addcloseHandler和Window.addwindowClosingHandler不会在浏览器关闭和浏览器刷新事件之间进行区分

时间:2013-02-16 19:41:21

标签: javascript gwt event-handling

我正在使用GWT,在我的应用程序中,我希望清除会话历史记录并在关闭浏览器上强制注销用户。但是点击刷新,用户应该登录。我已经为此编写了以下代码。

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()的功能。

我如何区分这两个事件?

1 个答案:

答案 0 :(得分:0)

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

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

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