Pee*_*Haa 94 javascript persistence persistent-storage local-storage
对于我正在编写的插件,我在很大程度上依赖于localStorage.所有用户设置都存储在其中.某些设置要求用户使用写正则表达式,如果他们的正则表达式规则在某些时候消失,他们会很难过.所以现在我想知道localStorage是多么持久.
从规格:
用户代理应仅出于安全原因或用户请求时从本地存储区域过期数据.
以上看起来就像客户端上的cookie一样.即,当用户清除所有浏览器数据(历史记录,cookie,缓存等)时,localStorage也将被截断.这个假设是否正确?
Jos*_*eph 67
Mozilla像cookie一样实现它:
当时间范围为"Everything"时(通过nsICookieManager :: removeAll),可以通过"工具 - >清除最近历史 - > Cookie"清除DOM存储
https://developer.mozilla.org/en/DOM/Storage
在DOM存储中,无法为任何数据指定有效期.所有到期规则都由用户决定.对于Mozilla,大多数规则都是从与Cookie相关的过期规则继承而来的.因此,您可能希望大多数DOM存储数据至少持续一段有意义的时间.
Chrome像缓存一样实现它:
LocalStorage不是安全存储
HTML5本地存储以字符串形式将未加密的数据保存在常规浏览器缓存中.
坚持
在磁盘上直到被用户(删除缓存)或应用程序删除
https://developers.google.com/web-toolkit/doc/latest/DevGuideHtml5Storage
至于"替代Cookie",并非完全如此
Cookie和本地存储确实有不同的用途.Cookie主要用于读取服务器端,LocalStorage只能在客户端读取.所以问题是,在你的应用程序中,谁需要这些数据 - 客户端还是服务器?
Dan*_*iro 17
基本上,你应该不会在很大程度上依赖于本地存储.
本地存储以及会话存储旨在替代cookie,定义更一致的API.与cookies有一些不同之处:
所以,是的,你的假设是正确的.
有关使用本地存储的一点注意事项.它非常适合浏览器.如果您使用firefox存储数据,它将无法以chrome或ie等形式提供.另外,就清除cookie和会话而言,我注意到它也是浏览器特定的是否清除了本地存储.如果您真的打算依赖本地存储来购买应用,我会详细研究细节.
本地存储旨在成为客户端上可靠、持久的数据存储。它不是设计为“更好的 cookie”:该功能旨在由会话存储满足。
来自2011年12 月的 Web Storage Spec Candidate Recommendation,
(本地存储)专为跨越多个窗口的存储而设计,并持续到当前会话之后。特别是,出于性能原因,Web 应用程序可能希望在客户端存储数兆字节的用户数据,例如整个用户创作的文档或用户的邮箱。
作为客户端数据 -在浏览器实现的大小限制内,它与任何客户端数据一样持久。用户可以随时删除它,在文本编辑器中打开它并进行编辑等 - 就像任何客户端数据一样。