当用户离开页面时在Seam中结束对话

时间:2011-09-29 14:59:53

标签: javascript seam seam-conversation

当用户离开页面时,是否有某种方法可以在Seam 2中结束对话?我知道,我当然可以在导航规则中结束对话(请参阅this post),但我想在用户在浏览器的地址栏中输入网址时结束对话。

这可以通过Javascript实现(例如使用onbeforeunload)吗?但是如何通过javascript停止对话?

1 个答案:

答案 0 :(得分:3)

  

我想在用户输入网址时结束对话   浏览器的地址栏。

     

这可以通过Javascript实现(例如使用   onbeforeunload)?但是如何通过javascript停止对话?

您可以使用JavaScript来实现onbeforeunload事件,并使用AJAX来传达离开网站的用户并结束所有对话。但是,我不推荐你这个解决方案,因为你不能依赖浏览器上发生的事件,Javascript不是一个好的选择,因为你可以在客户端禁用它(不仅如此,但浏览器可能会崩溃,网络连接可能会丢失等。)

我认为另一种方法是在服务器上设置接缝conversation timeout。您可以尝试减少超时,以便在用户离开您的网页时更快地关闭非活动对话。

配置会话超时期限可以通过以下components.xml

完成
<core:manager conversation-timeout="700000" />

请注意,会话超时仅影响background个会话,foreground会话仅在会话超时时才会超时,这与您的要求相关。

有关对话超时的详细信息,请参阅此article