sessionStorage可以多窗口共享吗? 答案:可以,在同一窗口多iframe中是共享,互操作互影响。在多个窗口下,会复制顶层sessionStorage,但无法互操作。
1、sessionStorage在同源下是否可以共享?
分类看问题:
1)在一个窗口下,多个iframe中,是共享;操作互影响;
注意:iframe清除,sessionStorage不会清除,sessionStorage只会看不到,当页面重新加载后sessionStorage会在应用中出现;所以一些session会无法保活
2)在多个窗口下:
本身sessionStorage就是每打开一个新窗口,就有一个自己的sessionStorage对象,关闭窗口即 过期当前窗口的sessionStorage;
但是通过A页面打开的B页面( 如:window.open('同源网址') ),会进行源网页sessionStorage复制,并在窗口B中可以访问到;
修改窗口A的sessionStorage,不会对窗口B内部的sessionStorage影响。
2、locaStorage
不过期,可共享(N个页面只要同域,就可以访问同一个localStorage对象)
3、cookie
可设置过期时间,可以按照MDN文档注意设置事项,加入docCookie便于操作cookie;
永久cookie可以设置9999那种和32位操作系统最大表示年份时间:2038/1/19;具体详见MDN;
4、当在iframe中使用window.open是什么情况呢?如上的逻辑我称为【基本逻辑】(新页面的sessionStorge复制,localStorage共享);测试得出:
情况1: root(源A) -> iframe(源B)
1)iframe 打开 源B, 即为同源:
不携带任何信息;【这里就很神奇,就是不携带】
2)iframe打开源A, 即为不同源(但是窗口同源):
会把源A的信息按照基本逻辑处理给新打开新页面;
3)iframe打开源C, 即为不同源:
无任何信息携带;
情况2:root(源A) -> iframe(源A)
1)iframe打开源A, 即为同源:
遵循基本逻辑;
2)iframe打开源B, 即为不同源:
不携带任何信息;
5、iframe中的src直接被302重定向,会导致什么?

很牛逼啊,直接导致iframe src和document的origin不同;但是storage是根据document的源去分离的(来自MDN);也就是说iframe重定向后,storage可按照重定向后的源理解逻辑;
好奇:为什么2038年是世界末日?
32位操作系统表示最大秒钟数为:
let out =0b10000000000000000000000000000000 - 1 // 1位表示正负,还有31位表示秒钟
out/60/60/24/365 约等于68.xxx年,等于正负68年,起点为1970年,所以2038年为32位操作系统的世界末日,超过也就是会时间重回1970年;若人生如此,岂不快哉!
本文来自博客园,作者:Math点PI,个性签名:“不写bug怎么进步?”,转载请注明原文链接:https://www.cnblogs.com/MrZhous/p/17301720.html

浙公网安备 33010602011771号