我有一些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));
});
在移动游猎中使用sessionstorage时需要注意的事项。
正如timolawl提到的mozila.org文件所述:
注意:自iOS 5.1起,Safari Mobile会在操作系统的命令下将sessionStorage数据存储在缓存文件夹中,该文件夹偶尔会被清理,通常是在空间不足的情况下。
这种清理在移动safari中频繁发生,并且所有打开的选项卡都会销毁所有sessionstorage变量。
例如,打开5个标签,然后加载一个包含大量javascript和css的新页面将导致清理,销毁所有会话存储变量。
但是,保留了localstorage变量。
此外,在safari上(我相信桌面和移动设备),私密浏览将阻止使用localstorage或sessionstorage。
浏览器关闭时会清除会话存储。它会在页面重新加载和恢复时持续存在。见:https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage