sessionStorage和localStorage的范围

时间:2012-03-16 18:08:57

标签: javascript html5 local-storage sessionstorage

我阅读了有关sessionStorage和localStorage的一些文档,但我不明白范围是什么:域名,特定页面?

例如,如果我有以下页面:

http://example.com/products.aspx?productID=1

http://example.com/products.aspx?productID=2

http://example.com/services.aspx?serviceID=3

如果我在上面的每个页面上运行(idvalue是查询字符串中的值):

localStorage.setItem('ID',idvalue);

我最终会存储3个不同的值,或者值是否会相互覆盖?

2 个答案:

答案 0 :(得分:132)

会话存储:

  1. 值只会在存储的窗口或标签中保持不变。

  2. 值仅在创建它们的窗口或选项卡中可见。

  3. 本地存储:

    1. 值会持续存在窗口和浏览器生命周期。

    2. 在同一来源的每个窗口或标签中共享值。

    3. 因此,通过阅读和理解,每个键值对每个域都是唯一的,因为本地存储在窗口或制表符中保持值。

答案 1 :(得分:80)

这些值将相互覆盖。无论路径如何,每个密钥名对对于协议和域都是唯一的。

可以通过document.domain属性更改受影响的域名。

  • sub.example.com - > example.com是可能的(子域名)
  • sub.example.com - > {/ 1}}不可能