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

sco*_*ott 6 browser ruby-on-rails session-variables

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

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

Jon*_*ock 2

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

对我来说最明显的方法是使用浏览器的 onbeforeunload 方法并以 ajax方式向服务器发送一些内容以清除会话。

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