localStorage、sessionStorage同一网站下共享问题

sessionStorage


以下的讨论是以同源为前提。(同源和同站是有区别的,同源要求更为严格)
不是所有的sessionStorage都能共享。


1. 第一种情况

浏览器中打开A页面,再通过A页面打开新的标签页B页面,此时A、B两个页面的sessionStorage是“共享”的。这里的共享指的是B页面会把A页面的的 sessionStorage 拷贝一份,作为B页面 的初始缓存值,此时改变B页面的session,A页面并不受影响。即不同 Tab 之间,session读写操作独立,互不影响。

// 之前通过两种方式打开新标签页都可以共享session
window.open(‘xxx’)
<a href="xxx" target="_blank"> </a>
//但是现在浏览器把sessionStorage设置为正经的单页面使用,需要在a标签中添加 rel=“opener”,才能实现共享,或者直接用js打开页面window.open()
<a href="xxx" target="_blank" rel="opener"> </a>

2. 第二种情况


浏览器中打开A页面,然后手动新开一个标签页,在新的标签页中打开B页面,此时A、B两个页面的sessionStorage是不“共享”,即B页面不会继承A页面session作为初始值。
新开一个标签页总是会初始化一个session,即使是同一个网站。

localStorage
同源状态下,不同标签页之间均可读写,相互影响
————————————————
版权声明:本文为CSDN博主「 夏天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43389274/article/details/120744924

-----------------------------------------------------------------------------------------------------------

两个不同的域名的localStorage不能直接互相访问。那么如何在domain2.com中如何调用domain1.com的localStorage?

第一种
在domain2.com的页面中,嵌入一个src为domain1.com的iframe,此时这个iframe里可以调用domain1.com的localstorage。用postMessage方法实现页面与iframe之间的通信。
我们可以优化下iframe,我们可以在domain1.com中专门写一个负责共享localstorage的页面,这样可以防止无用的资源加载到iframe中。
————————————————
版权声明:本文为CSDN博主「juff xiao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40655485/article/details/111942660

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值