我可以期望将数据保存在localStorage中多长时间。普通用户的localStorage数据会持续多长时间?如果用户没有清除它,它会持续到浏览器重新安装吗?
这是否在浏览器中保持一致?
答案 0 :(得分:72)
localStorage也称为Web存储,HTML5存储和DOM存储(这些都意味着相同的事情)。
localStorage类似于sessionStorage, ,但 存储在localStorage中的数据没有到期时间,而存储在sessionStorage中的数据在浏览会话结束时(即浏览器已关闭)。
localStorage适用于所有浏览器,但持久性并未始终如一。特别是,localStorage可以通过用户操作清除,并且可能会被无意中清除(谁会认为清除所有cookie也会清除localStorage?)。
在Firefox中,当满足以下三个条件时,localStorage将被清除:(a)用户清除最近的历史记录,(b)选择要清除的cookie,(c)时间范围是"一切"
在Chrome中,当满足以下条件时,localStorage会被清除:(a)清除浏览数据,(b)" Cookie和其他网站数据"被选中,(c)时间框架从时间开始""。在Chrome中,现在也可以delete localStorage for one specific site。
在IE中,要清除localStorage:(a)工具 - Internet选项,(b)常规选项卡,(c)退出时删除浏览历史记录,(d)确保" Cookie和网站数据" (或者"临时互联网文件和网站文件")被选中,(e)考虑取消选中"保留收藏夹网站数据"在顶部
在Safari中:(a)单击Safari(b)首选项(c)选择隐私选项卡(d)单击删除所有网站数据(e)单击立即删除
Opera:尽管Opera网站上有关于localStorage的精彩文章,但我还没有找到关于如何清除localStorage的明确(非程序化)指令。如果有人发现,请在此答案下方留下评论参考链接。Opera dev site对localStorage有很好的总结:
目前在客户端存储数据的方式 - cookies - 是一种 问题:
低尺寸:Cookie的最大大小通常约为4 KB 存储任何类型的复杂数据并不是很好
Cookie很难跟踪两个或多个交易 网站,可能发生在两个或多个不同的标签
缓存 可以使用跨站点脚本等技术来利用 导致安全漏洞
其他(不太受欢迎的)替代品 cookies包括涉及查询字符串,隐藏表单的技术 字段,基于flash的本地共享对象等。每个都有自己的集合 与安全性,易用性,尺寸限制等有关的问题 到目前为止,我们一直在使用非常糟糕的方式存储数据 用户的结局。我们需要一种更好的方法,这就是Web Storage的用武之地 英寸
网络存储
W3C Web存储规范被设计为更好的方式 在客户端存储数据。它有两种不同的类型 存储:会话存储和本地存储。
会话和本地存储通常都能够存储 每个域5 MB的数据,这远远超过cookie。
资源:
https://dev.opera.com/articles/web-storage/
http://www.quirksmode.org/html5/storage.html
http://www.ghacks.net/2015/02/05/how-to-clear-web-storage-in-your-browser-of-choice/
http://www.opera.com/dragonfly/documentation/storage/
答案 1 :(得分:71)
W3C草案说这个
用户代理应仅出于安全原因或用户请求时,从本地存储区域过期数据。用户代理应始终避免在可访问该数据的脚本正在运行时删除数据。
因此,如果浏览器遵循规范,它应该持续存在,直到用户在所有浏览器上删除它,我还没有找到任何已删除的项目。
要阅读的好文章也是http://ejohn.org/blog/dom-storage/
答案 2 :(得分:2)
只要用户选择清除存储(全部或单个值),localstorage中的内容就是持久的
关于浏览器的一致性,localstorage目前在每个主要浏览器上都可用,包括IE8 +(参见http://caniuse.com/#feat=namevalue-storage)
答案 3 :(得分:1)
在Chrome中执行'清除浏览数据' ,如果您选择Cookie和其他网站和插件数据'选项然后sessionStorage数据将被删除。
答案 4 :(得分:1)