sessionStorage的总结
1.页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话
2.打开多个相同的URL的Tabs页面,会创建各自的sessionStorage
所以从浏览器输入地址,也会创建不同的session,而无法公用一个
3.在新标签或窗口打开一个页面时会复制顶级浏览会话的上下文作为新会话的上下文,这点和 session cookies 的运行方式不同
//a.html
sessionStorage.setItem("a", 11);
//b.html
sessionStorage.removeItem("a");
//这是a.html的sessionStorage不会受到影响
所以这就是复制顶级浏览会话的上下文产生的问题,解决这个问题,可以监听storage事件
//a.html
document.addEventListener("storage", (event) => {
console.log("监听到storage事件");
console.log(event);
});
//b.html
sessionStorage.setItem("a", 11);
b.html页面删除storage之后,a.html可以监听到,然后做相应的操作,多个tab共享sessionStorage,也可以使用这个办法