2013-02-16 116 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()函數。