【发布时间】:2011-11-07 20:43:26
【问题描述】:
我有一个应用程序,以及那里的用户和会话模型。新会话在用户登录时创建。如果用户注销或关闭浏览器,会话会销毁。但是如果用户使用我的应用程序关闭所有选项卡,我想添加破坏会话。有可能从头开始吗?如果没有我应该使用什么?
提前致谢
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 session
我有一个应用程序,以及那里的用户和会话模型。新会话在用户登录时创建。如果用户注销或关闭浏览器,会话会销毁。但是如果用户使用我的应用程序关闭所有选项卡,我想添加破坏会话。有可能从头开始吗?如果没有我应该使用什么?
提前致谢
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 session
您需要使用 window.name,这里有一些解决方案可以在不同的选项卡中控制您的应用程序:Multiple Tabs
【讨论】:
会话变量是服务器端的,而标签关闭是客户端的操作,因此您必须以某种方式向服务器发送信号以清除这些会话变量。
对我来说最明显的方法是使用浏览器的 onbeforeunload 方法并以ajax方式向服务器发送一些内容以清除会话。
现在您必须找到一种方法来检测您网站的所有选项卡都已关闭。因为,如果我在两个选项卡中打开您的站点,此技术将在一个选项卡关闭时清除会话,呈现另一个标签没用(不是没用,只是地毯可能已经从这个页面下拉出来了,现在会话已经消失了)
【讨论】: