Session 如何实现';子会话和#x27;,a、 k.a.每标签存储

Session 如何实现';子会话和#x27;,a、 k.a.每标签存储,session,http-headers,session-state,session-cookies,Session,Http Headers,Session State,Session Cookies,我需要一种能够做到以下几点的方法: web应用程序有一个名为“setting”的变量 当用户首次连接到应用程序时,设置的值应为“default” 可以在任何页面中更改设置 如果用户在新选项卡中单击鼠标中键打开页面,则该页面的设置应为当前页面设置的副本(副本,而不是对其的引用) 如果用户打开一个新选项卡并键入web应用程序的URL,则该页面的设置值应为“默认” 如果用户左键单击链接,则新页面应具有与引用页面相同的设置值(相同的值,而不是副本) 实施: 很明显,我可以通过一个讨厌的url黑客(…?s

我需要一种能够做到以下几点的方法:

web应用程序有一个名为“setting”的变量

当用户首次连接到应用程序时,设置的值应为“default”

可以在任何页面中更改设置

如果用户在新选项卡中单击鼠标中键打开页面,则该页面的设置应为当前页面设置的副本(副本,而不是对其的引用)

如果用户打开一个新选项卡并键入web应用程序的URL,则该页面的设置值应为“默认”

如果用户左键单击链接,则新页面应具有与引用页面相同的设置值(相同的值,而不是副本)

实施:

很明显,我可以通过一个讨厌的url黑客(…?setting=foo)来做到这一点,但当有很多设置时,这会变得讨厌

浏览器上是否有可用的“每标签”存储

理论:

这种行为的理论基础是子段的概念。所有子会话都属于该会话。如果子会话的选项卡是通过单击鼠标中键打开的,则子会话有一个父会话。如果他们的页面是通过在空选项卡中键入URL加载的,则子会话没有父会话。设置可以存储在子会话中,如果子会话中不存在设置,则使用父会话的值

有人对如何做好这件事有什么想法吗

有没有网站已经这样做了

谢谢


克里斯

我已在以下网站上编写了此问题的解决方案:


很明显,它处于早期开发阶段,可能包含bug。

我认为这对您来说是可行的:

“但是当有很多设置时,这会变得很糟糕”如何?URL的长度?可能重复的URL?请参阅