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