sessionStorage

存储在 sessionStorage 里面的数据在页面会话结束时会被清除。页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。在新标签或窗口打开一个页面时会在顶级浏览上下文中初始化一个新的会话
**

  1. // 保存数据到 sessionStorage
  2. sessionStorage.setItem('key', 'value');
  3. // 从 sessionStorage 获取数据
  4. let data = sessionStorage.getItem('key');
  5. // 从 sessionStorage 删除保存的数据
  6. sessionStorage.removeItem('key');
  7. // 从 sessionStorage 删除所有保存的

sessionStorage存储大小一般为5M,不同浏览器可能不一样,可以使用http://dev-test.nemikor.com/web-storage/support-test/进行测试。

在多个标签页之间共享sessionStorage

https://blog.kazaff.me/2016/09/09/译-在多个标签页之间共享sessionStorage/
这种方式提供一些新的思路,具体使用有待验证。

vuex-shared-mutations Share vuex mutations between tabs/windows.
使用 BroadcastChannel 如果不支持降级为localStorage,有需求可以参考。

无痕模式被禁用

无痕模式下sessionStorage和localStorage会被禁用
无痕浏览的工作原理
https://stackoverflow.com/questions/14555347/html5-localstorage-error-with-safari-quota-exceeded-err-dom-exception-22-an

参考

https://developer.mozilla.org/zh-CN/docs/Web/API/Window/sessionStorage