V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
csh1617487191
V2EX  ›  JavaScript

请教各位大佬, sessionStorage 的规则到底是什么? 关闭标签页再打开,数据依然被保留

  •  
  •   csh1617487191 · 242 天前 · 1992 次点击
    这是一个创建于 242 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://zh.javascript.info/localstorage 文档上写着一条规则:

    sessionStorage 数据在页面刷新后仍然保留,但在关闭/重新打开浏览器标签页后不会被保留。

    我测试的结果是:关闭窗口数据确实会自动清空,但是关闭浏览器标签并不会

    https://zh.javascript.info/localstorage 文档有实例可供测试

    8 条回复    2024-03-27 14:00:01 +08:00
    trytodoyourbest
        1
    trytodoyourbest  
       242 天前
    之前遇到鼠标打开新标签页 sessionStorage 不会有,但是 window.open()打开新的标签会被继承
    Aruok
        2
    Aruok  
       242 天前
    因为有的浏览器具有 "恢复关闭的标签" 功能,可能会使得 sessionStorage 的数据在标签被关闭后仍然可以恢复.
    gucheen
        3
    gucheen  
       242 天前
    你不是会是浏览器的恢复标签页这个功能重新打开的页面吧?这是 feature
    类似的恢复标签页的功能也会同时恢复 sessionStorage
    具体原因自行查阅相关浏览器的开发文档
    csh1617487191
        4
    csh1617487191  
    OP
       242 天前
    并没有用浏览器的快捷键恢复关闭的标签页,只是手动关闭当前标签页,再把复制的 url 重新打开,sessionStorage 数据依然保留,https://zh.javascript.info/localstorage 文档有实例可供测试
    gucheen
        5
    gucheen  
       242 天前   ❤️ 1
    没有这个问题,建议你把你用的什么浏览器,怎么操作的,录屏一下,没准你就找到了浏览器的 bug ,可以去提 issue 了
    EJW
        6
    EJW  
       242 天前   ❤️ 1
    @csh1617487191 4
    我没有复现你这个问题
    csh1617487191
        7
    csh1617487191  
    OP
       241 天前
    不好意思 耽误大家时间了,是我的操作问题,复制了当前的标签页,然后再关闭之前的浏览器标签才会出现这个问题
    thinkershare
        8
    thinkershare  
       241 天前
    在新标签或窗口打开一个页面时会复制顶级浏览会话的上下文作为新会话的上下文,这点和 session cookie 的运行方式不同
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2677 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 05:29 · PVG 13:29 · LAX 21:29 · JFK 00:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.