0
我在onModuleLoad我的应用程序下面的代码():GWT-RPC延迟窗口刷新
Window.addWindowClosingHandler(new ClosingHandler() {
@Override
public void onWindowClosing(ClosingEvent event) {
event.setMessage("If you choose to close, application will sign out");
}
});
//sign out on close
Window.addCloseHandler(new CloseHandler<Window>() {
@Override
public void onClose(CloseEvent<Window> event) {
sendLogout();
}
});
的sendLogout()函数如下:
// Set up the callback object.
AsyncCallback<String> callback = new LogoutCallback(this);
// Make the call to the survey service.
SurveySystemService.Util.getInstance().logout(details, callback);
其中 '细节'是一些对象。
当窗口关闭时它工作得很好,但如果我尝试刷新页面,它不会注销。我的想法是,由于调用是异步的,在模块重新启动之前,它不会完成将消息传递到服务器。我试过了: 1.在onClose方法中创建并调用回调函数。 2.使用定时器来检查是否有呼叫。 3.检查与上述相同的无尽的厕所(我绝望)。
在所有这些解决方案中,程序都会到达回调创建,但服务器从未收到任何东西。
对此有何帮助?
我最终使用Cookies来做你的建议,它的工作原理,谢谢!我从这个项目中学到的一个教训是,gwt-rpc是魔鬼:P – AoGenius