sessionStorage何时实际清除?

问题描述 投票:15回答:2

我有一些javascript来检查sessionStorage中的对象,并使用它来重新填充输入字段。我使用它来帮助我的网站上的用户,如果他们离开表单未完成,并导航或尝试在他们的会话过期后提交表单。

我的理解是sessionStorage没有链接到服务器会话,它链接到浏览器,所以我是否在服务器上有新的会话是无关紧要的。

几个月前我最初测试时支持了这一点。但是,似乎不再是这种情况,当我清除会话cookie并重新加载我的页面时,我的sessionStorage也被清除了。这是使用Chrome和Firefox。

我不想使用localStorage,因为这可能会导致共享计算机出现问题,而当浏览器窗口关闭时,sessionStorage将被清除。

JS获取我存储对象的值

JSON.parse(sessionStorage.getItem("draftPost") || null);

JS保存价值

$("#wallText").on("change",function(){
            sessionStorage.setItem("draftPost",JSON.stringify(draftPost));
        });
javascript jquery html5 session-storage
2个回答
5
投票

在移动游猎中使用sessionstorage时需要注意的事项。

正如timolawl提到的mozila.org文件所述:

注意:自iOS 5.1起,Safari Mobile会在操作系统的命令下将sessionStorage数据存储在缓存文件夹中,该文件夹偶尔会被清理,通常是在空间不足的情况下。

这种清理在移动safari中频繁发生,并且所有打开的选项卡都会销毁所有sessionstorage变量。

例如,打开5个标签,然后加载一个包含大量javascript和css的新页面将导致清理,销毁所有会话存储变量。

但是,保留了localstorage变量。

此外,在safari上(我相信桌面和移动设备),私密浏览将阻止使用localstorage或sessionstorage。


4
投票

浏览器关闭时会清除会话存储。它会在页面重新加载和恢复时持续存在。见:https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

© www.soinside.com 2019 - 2024. All rights reserved.