我如何实现'subsessions',a.k.a。每标签存储

时间:2011-06-10 15:30:46

标签: session http-headers session-state session-cookies

我需要一种能够执行以下操作的方法:

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

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

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

如果用户在新标签页中单击以打开页面,则该页面的设置应该是当前页面设置的副本(副本,而不是对其的引用)。

如果用户打开新标签并输入网络应用的网址,则该网页的设置值应为“默认”。

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

实现:

我显然可以通过讨厌的网址(...?setting = foo)来做到这一点,但是当有很多设置时,这会变得很讨厌。

浏览器上是否有“每标签”存储空间。

理论值:

这种行为的理论基础是一个次级的概念。所有子会话都属于会话。如果通过中间点击打开其选项卡,则子会话具有父级。如果通过在空选项卡中键入URL来加载页面,则子会话没有父级。设置可以存储在子会话中,并且在子会话中不存在设置,而是使用父级的值。

有没有人对如何做到这一点有任何想法?

是否有任何网站已经采用这种方式?

谢谢,

克里斯。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

我已经在这个问题上写了一个解决方案:

https://github.com/chrisdew/subsession

显然处于早期开发状态,可能包含错误。