Vaadin在浏览器侧关闭窗口时,后台如何监视,获得消息并触发资源释放动作

在浏览器中关闭 vaadin UI ,后台是否有监视器监视这个动作?

有的,用detach listener就行了。不过detach listener不会在ui浏览器关闭后马上被调用。一般是在3个heartbeat 后 (大概15分钟),heartbeat的间隔也可以自己设置(默认是5分钟)

Haijian Wang:
有的,用detach listener就行了。不过detach listener不会在ui浏览器关闭后马上被调用。一般是在3个heartbeat 后 (大概15分钟),heartbeat的间隔也可以自己设置(默认是5分钟)

谢谢,但是我在UI的init()中使用this.addDetachListener(),发现这个方法只有在15分钟后再次打开浏览器UI页面才被调用,并没有在3个心跳结束后立即被调用。请问这个怎么解决呢?

如果程序有两个及以上个tab的话,关闭一个tab,UI detach 会在3个心跳后被调用,如果整个程序只有一个tab的话,那detach listener会在http session timeout 后被调用,默认值好像是30分钟。这也是为什么你发现打开一个ui页面会被调用,因为session还有效,打开新页面的时候,vaadin会检查有哪些被关掉的UI,清除掉他们。

总而言之,程序只剩下最后一个UI时,UI detach 会在session timout(大概30分钟)时被调用

谢谢,是有效的