首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gwt-rpc延迟窗口刷新

gwt-rpc延迟窗口刷新
EN

Stack Overflow用户
提问于 2012-06-05 06:19:10
回答 1查看 510关注 0票数 0

我的应用程序的onModuleLoad()中有以下代码:

代码语言:javascript
复制
    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()函数如下所示:

代码语言:javascript
复制
// Set up the callback object.
    AsyncCallback<String> callback = new LogoutCallback(this);
    // Make the call to the survey service.

    SurveySystemService.Util.getInstance().logout(details, callback);

其中'details‘是某个对象。

当窗口关闭时,它工作得很好,但如果我尝试刷新页面,它不会注销。我的想法是,由于调用是异步的,所以在模块重新启动之前,它不会将消息发送到服务器。

我尝试过: 1.在onClose方法中创建和调用回调函数。2.使用计时器检查是否进行了调用。3.无穷无尽的厕所,检查与上面相同(我绝望了)。

在所有这些解决方案中,程序将达到回调创建,但服务器从未接收到任何内容。

对此有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-05 07:49:19

您是否可以在页面首次加载时调用logout。由于web的无状态特性,GWT应用程序将不会知道用户点击刷新或只是导航到页面之间的区别。

您可以将ID变量存储在会话存储中,该变量应保留到浏览器窗口或选项卡关闭为止。如果在应用程序启动时,会话存储中存在ID变量,则可以使用它来触发注销。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10889195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档