我正在使用此代码在浏览器关闭时使用户会话无效。
Window.addCloseHandler(new CloseHandler<Window>() {
@Override
public void onClose(CloseEvent<Window> event) {
logOut();
}
});
logOut方法只是调用RPC并使会话无效。 一旦我关闭浏览器,它就会关闭,然后调用服务器并到达服务器,使会话无效。
但是,当我将我的应用程序放在Tomcat或任何虚拟主机上时..此功能停止工作..
任何想法......可能是解决方案
答案 0 :(得分:1)
我认为,问题是,在rcp调用有机会将基础XMLHTTPRequest发送到服务器之前,浏览器已关闭。
我会给WindowClosingHandler一个机会:
Window.addWindowClosingHandler(new ClosingHandler() {
@Override
public void onWindowClosing(ClosingEvent event) {
logOut();
}
});
如果这不起作用,请尝试添加由onBeforeUnload事件调用的本机javascript函数,并使用JSNI调用logOut()方法。