清除选项卡关闭时的会话值

时间:2010-08-20 15:15:26

标签: ruby-on-rails browser session-variables

据我了解,当用户关闭浏览器时会清除会话变量。无论如何,当用户关闭浏览器中的选项卡时,是否清除会话变量?

我问的原因是,如果用户在网站上并关闭选项卡但不关闭浏览器,我需要区分两次访问,并且用户在同一浏览器会话中的单独选项卡上返回该站点。 / p>

2 个答案:

答案 0 :(得分:2)

会话变量是服务器端,而制表符关闭是客户端操作,因此您必须以某种方式向服务器发送信号以清除这些会话变量。

对我来说最明显的方法是使用浏览器的onbeforeunload方法,然后向服务器发送一些东西来清除会话。

但这是危险的领域。您确定不希望允许用户同时打开并使用您网站的多个标签吗?因为,如果我在两个选项卡中打开您的站点,这种技术将在一个选项卡关闭时清除会话,使另一个选项卡无用(不是无用的,只是地毯可能已从此页面下拉,现在该会话已经不见了。)

答案 1 :(得分:0)

检查以下链接以获得最佳答案: Why Doesn't Closing A Tab Delete A Session Cookie?

你可以做的是在网址的末尾添加一些随机文本并将其存储以供参考,如果用户来自新标签但没有附加随机文本,则可以确定来自不同标签的用户。 / p>