javascript 会话存储和本地存储的范围

c9x0cxw0  于 2023-05-27  发布在  Java
关注(0)|答案(2)|浏览(140)

我读了一些关于sessionStorage和localStorage的文档,但我不明白它的作用域是什么:一个特定的页面?
例如,如果我有以下页面:
http://example.com/products.aspx?productID=1
http://example.com/products.aspx?productID=2
http://example.com/services.aspx?serviceID=3
如果我在上面的每一个页面上运行(idvalue是querystring中的值):

localStorage.setItem('ID',idvalue);

我最终会存储3个不同的值,还是这些值会相互覆盖?

d4so4syb

d4so4syb1#

会话存储:

1.值的持续时间仅与存储它们的窗口或选项卡的持续时间相同。
1.值仅在创建它们的窗口或选项卡中可见。

本地存储:

1.值在窗口和浏览器生存期内保持不变。
1.值在同一原点运行的每个窗口或选项卡之间共享。
因此,通过阅读和理解这一点,每个键值对对于每个域都是唯一的,因为本地存储跨窗口或选项卡保存值。

ui7jx7zq

ui7jx7zq2#

这些值将相互覆盖。无论路径如何,每个密钥-名称对对于协议和域都是唯一的。
受影响的域可以通过document.domain属性进行更改。

  • sub.example.com-> example.com是可能的(子域)
  • sub.example.com-> other.example.com不可能

参考文献:

  • MDN: Web Storage API:“sessionStorage为每个给定的源[...]维护一个单独的存储区域”
  • MDN: Origin:“只有当方案、主机名和端口都匹配时,两个对象才具有相同的起源。”

相关问题