使用本地会话来维护状态

时间:2012-03-05 13:47:44

标签: javascript html5

我想使用本地会话存储来维护我的Web应用程序中的状态,尤其是当用户在浏览器中打开多个选项卡时。

我在服务器上的HTML中注入了一些数据。在页面的document.ready部分,我有这样的事情:

MyStorage = window.sessionStorage;
MyStorage.setItem('MyVar', $('#TheVar').html());

如果以后我写这个:

ThisVar = MyStorage.getItem('MyVar');
ThisVar = 3;

会话存储中的值是否也会变为3?并且,当我在一个选项卡中更改ThisVar的值时,其他选项卡中所有变量ThisVar的值是否也为3?

感谢。

2 个答案:

答案 0 :(得分:3)

  1. 不,因为您要为ThisVar分配新值,而不是sessionStorage键值对。
  2. 不,变量不会神奇地更新。 getItem返回值,即存储密钥的字符串。

答案 1 :(得分:0)

  1. 尝试避免使用大写变量,此命名约定仅适用于类。
  2. 使用关键字var初始化变量。

  3. (回答你的问题)不。你没有处理引用,localStorage.getItem()函数将值作为字符串返回,而不是作为引用。您需要像在第一时间那样使用localStorage.setItem()功能来更新存储。这就是为什么,我建议你直接在存储上工作,而不是使用额外的变量。 (另一方面,您可以使用一个函数,在更改变量值时更新存储。)