当用户离开页面时,有什么方法可以结束Seam2中的对话吗?我知道,我当然可以在导航规则中结束对话(参见this post),但我希望当用户在浏览器的地址栏中输入url时结束对话。
这可以通过Javascript (例如onbeforeunload)来实现吗?但是如何通过javascript停止对话呢?
发布于 2011-09-30 17:26:25
当用户在浏览器的地址栏中输入url时,我想结束对话。
这可以通过Javascript (例如onbeforeunload)来实现吗?但是如何通过javascript停止对话呢?
您可以使用JavaScript实现一个onbeforeunload事件,并使用AJAX与离开站点的用户通信并结束所有对话。然而,我不建议你使用这种解决方案,因为你不能依赖于浏览器上发生的事件,Javascript不是一个好的选择,因为你可以在客户端禁用它(不仅如此,浏览器可能会崩溃,网络连接可能会中断,等等)。
我认为另一种方法是在服务器上设置一个seam conversation timeout。您可以尝试减少超时,以便在用户离开页面时更快地关闭非活动对话。
可以通过在components.xml中执行以下操作来配置会话超时时间
<core:manager conversation-timeout="700000" />请注意,会话超时仅影响background会话,foreground会话仅在会话超时时才会超时,这与您的要求相关。
有关对话超时的更多信息,请参阅此article。
https://stackoverflow.com/questions/7599288
复制相似问题