当用户离开页面时,是否有某种方法可以在Seam 2中结束对话?我知道,我当然可以在导航规则中结束对话(请参阅this post),但我想在用户在浏览器的地址栏中输入网址时结束对话。
这可以通过Javascript实现(例如使用onbeforeunload)吗?但是如何通过javascript停止对话?
答案 0 :(得分:3)
我想在用户输入网址时结束对话 浏览器的地址栏。
这可以通过Javascript实现(例如使用 onbeforeunload)?但是如何通过javascript停止对话?
您可以使用JavaScript来实现onbeforeunload
事件,并使用AJAX来传达离开网站的用户并结束所有对话。但是,我不推荐你这个解决方案,因为你不能依赖浏览器上发生的事件,Javascript不是一个好的选择,因为你可以在客户端禁用它(不仅如此,但浏览器可能会崩溃,网络连接可能会丢失等。)
我认为另一种方法是在服务器上设置接缝conversation timeout
。您可以尝试减少超时,以便在用户离开您的网页时更快地关闭非活动对话。
配置会话超时期限可以通过以下components.xml
:
<core:manager conversation-timeout="700000" />
请注意,会话超时仅影响background
个会话,foreground
会话仅在会话超时时才会超时,这与您的要求相关。
有关对话超时的详细信息,请参阅此article。