GWT:窗口关闭时会话无效在开发模式下工作,但在实际服务器上不工作

时间:2013-10-03 17:39:14

标签: gwt

我正在使用此代码在浏览器关闭时使用户会话无效。

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

logOut方法只是调用RPC并使会话无效。 一旦我关闭浏览器,它就会关闭,然后调用服务器并到达服务器,使会话无效。

但是,当我将我的应用程序放在Tomcat或任何虚拟主机上时..此功能停止工作..

任何想法......可能是解决方案

1 个答案:

答案 0 :(得分:1)

我认为,问题是,在rcp调用有机会将基础XMLHTTPRequest发送到服务器之前,浏览器已关闭。

我会给WindowClosingHandler一个机会:

Window.addWindowClosingHandler(new ClosingHandler() {
  @Override
  public void onWindowClosing(ClosingEvent event) {
    logOut();
  }
});

如果这不起作用,请尝试添加由onBeforeUnload事件调用的本机javascript函数,并使用JSNI调用logOut()方法。