什么时候清除localStorage?


112

我希望将数据保留在localStorage中多长时间。一般用户的localStorage数据将保留多长时间?如果用户不清除它,它将持续到重新安装浏览器?

跨浏览器是否一致?

Answers:


99

W3C草案对此表示

用户代理应仅出于安全原因或在用户要求时才使本地存储区中的数据过期。用户代理应始终避免在运行可以访问数据的脚本时删除数据。

因此,如果浏览器遵循该规范,则该规范应一直保留到用户在所有浏览器上将其删除为止,但在我的所有项目中都没有发现任何已删除的规范。

一篇不错的文章也是http://ejohn.org/blog/dom-storage/


“用户要求这样做” =当用户清除数据时。请参阅stevesouders.com/blog/2012/09/10/clearing-browser-data以了解特定于浏览器的清理方法以及如何进行清理。
朱利安·克朗格

更新Chrome时可以清除本地存储。在过去的12个月中,这两次发生在我身上。如果数据很重要,请启用并鼓励用户将相关数据下载到文件中,以便在发生这种情况时可以将其重新安装。
user2677034

116

localStorage也被称为Web存储,HTML5存储和DOM存储(它们都意味着同一件事)。

localStorage与sessionStorage相似,不同之处在于,存储在localStorage 中的数据没有到期时间,而存储在sessionStorage中的数据在浏览会话结束时(即,关闭浏览器/浏览器选项卡时)被清除。会话存储的使用频率比localStorage少得多,并且仅存在于当前浏览器选项卡中-即使加载到同一网站的两个选项卡也将具有不同的sessionStorage数据。sessionStorage数据在页面刷新后仍然有效,但不能关闭/打开选项卡。另一方面,LocalStorage数据在同一来源的所有选项卡和窗口之间共享。LocalStorage数据不会过期;重新启动浏览器后,甚至在操作系统重新启动后,它仍然保留。 资源

在所有浏览器上都可以使用localStorage,但是并不能始终如一地实现持久性。特别是,localStorage可以通过用户操作清除,并且可能会无意中清除(谁会认为清除所有cookie也会清除localStorage?)。

在Firefox中,当满足以下三个条件时,将清除localStorage:(a)用户清除最近的历史记录,(b)选择要清除的cookie,(c)时间范围为“所有”

在Chrome中,当满足以下条件时,将清除localStorage:(a)清除浏览数据,(b)选择“ Cookie和其他站点数据”,(c)时间范围是“从时间开始”。在Chrome中,现在还可以删除一个特定站点的localStorage

在IE中,清除localStorage:(a)工具-Internet选项,(b)常规选项卡,(c)删除退出时的浏览历史记录,(d)确保“ Cookie和网站数据”(或“临时互联网文件和网站文件” “”被选中,(e)考虑取消选中顶部的“保留收藏夹网站数据”

在Safari中:(a)单击Safari(b)首选项(c)选择“隐私”选项卡(d)单击“删除所有网站数据”(e)单击“立即删除”

Opera:尽管Opera网站上有许多关于localStorage的文章,但我还没有找到关于如何清除localStorage的清晰(非编程)说明。如果有人发现,请在此答案下方留下带有参考链接的评论。


歌剧开发站点具有的localStorage的一个很好的总结:

当前在客户端上存储数据的方式(cookie)是一个问题:

  • 大小偏小:Cookie的最大大小通常约为4 KB,这对于存储任何类型的复杂数据都不利

  • Cookie很难跟踪同一站点上的两个或多个交易,而这可能发生在两个或多个不同的选项卡中

  • 可以使用跨站点脚本之类的技术来利用Cookie,从而导致安全漏洞

Cookie的其他(较不受欢迎)替代方法包括涉及查询字符串,隐藏表单字段,基于Flash的本地共享对象等的技术。每种技术都有其自身的一系列与安全性,易用性,大小限制等相关的问题。所以到目前为止,我们一直在使用非常糟糕的方式在用户端存储数据。我们需要一种更好的方法,这就是Web存储的用武之地。

网络存储

W3C Web存储规范被设计为在客户端存储数据的一种更好的方法。它具有两种不同类型的存储:会话存储和本地存储。

会话存储和本地存储通常都可以在每个域中存储大约5 MB的数据,这远远大于cookie。

资源:

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

https://javascript.info/localstorage

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/

https://nakedsecurity.sophos.com/2014/11/05/how-to-clear-out-cookies-flash-cookies-and-local-storage/

http://www.opera.com/dragonfly/documentation/storage/

关于MDN的DOMStorage文章(由John Resig撰写)

http://ejohn.org/blog/dom-storage/


2
我将在“存储”选项卡的“开发模式”(按F12)中添加,实际上可以查看,修改和删除这些localStorage变量。
David Tabernero M.

indexDB是否也是如此?即也可以通过用户操作清除?
Pylinux

在IE中,除了上述步骤外,用户还需要关闭浏览器,然后才能看到本地
存储


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.