【问题标题】:Detecting a browser closing in Vaadin application在 Vaadin 应用程序中检测浏览器关闭
【发布时间】:2016-08-26 15:43:48
【问题描述】:

如何在 Vaadin 中检测浏览器的选项卡或窗口何时关闭?
我的情况是我有一个后台线程,当用户进入或退出浏览器中的视图时,该线程会启动和停止。线程根据导航器的更改侦听器的 beforeViewChange 和 afterViewChange 事件启动或停止。当我在应用程序中切换视图时,一切正常。

我的问题是,如果具有后台线程的视图处于活动状态并且用户关闭了浏览器选项卡或窗口,我不知道如何检测此关闭,因此我可以停止我的后台线程。目前,如果我关闭浏览器,后端线程会继续在服务器上运行。

【问题讨论】:

    标签: vaadin


    【解决方案1】:

    您可以将 DetachListener 添加到您的 UI。当服务器错过来自客户端的三个连续心跳信号时,将发送 DetachEvent。

    addDetachListener(new DetachListener() {
        @Override
        public void detach(DetachEvent event) {
        ... closeBackgroundThread()
        }
    });
    

    有关 UI 过期的详细信息,请参阅 https://vaadin.com/docs/-/part/framework/application/application-lifecycle.html

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-22
    • 2013-07-24
    • 2013-05-12
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多