2013-02-16 117 views
3

我正在使用GWT,并且在我的应用程序中,我想清除会话历史记录并在关闭的浏览器上强制注销用户。但点击刷新时,用户应该已经登录。我已经为此写下了以下代码。Window.addcloseHandler和Window.addwindowClosingHandler不会影响浏览器关闭和浏览器刷新事件

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

我该如何区分两个事件?

+0

我已经通过以下链接。但我无法得到适当的结果。 http://stackoverflow.com/questions/9626074/gwt-rpc-possible-in-window-closing-handler http://stackoverflow.com/questions/14898144/gwt-windowclosinghandler-firing-on-browser-refresh -too – PVR 2013-02-16 19:43:06

+0

+1。面对同样的问题。 – 2013-02-16 21:30:50

回答

0

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

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

您可以在调试时看到此信息,并且您的应用程序类的新实例再次调用您的GWT应用程序onModuleLoad()函数。