【问题标题】:Different types of browser storage不同类型的浏览器存储
【发布时间】:2011-04-20 09:11:32
【问题描述】:
从此幻灯片http://slides.html5rocks.com/#slide8
并从 Chrome:查看 > 开发人员 > 开发人员工具 > 存储选项卡,
我了解到浏览器存储至少有 4 种类型:
数据库、本地存储、会话存储、Cookie
(还有更多吗?)
有什么区别?我应该什么时候使用一个而不是另一个?
例如,如果一个站点想要存储用户偏好,该站点应该告诉浏览器使用哪种存储方法?
【问题讨论】:
标签:
cookies
html
local-storage
session-storage
【解决方案1】:
您要问的是 Web Storage,它基本上是一个 HTML Web Storage。
本地存储 - 用作易失性存储(没有过期)
会话存储 - 直到正在使用会话或打开选项卡
IndexedDb - 一旦使用,您必须手动清除它(历史或进入存储)
WebSQL - 旧的但仍然使用相同的 SQL 查询 - 现在它不是 HTML5 规范的一部分。
Cookies - 是最常见的保存少量数据的方法,所有网站都在使用它们,现在每个使用它的网站都应该请求用户许可。顺便说一句,这就是 GDPR!
【解决方案2】:
它们都是浏览器端存储,为网络应用/网站提供离线/缓存机制:
-
本地存储:简单的键值存储,数据总是以字符串的形式存储。域的所有页面都可以访问相同的数据,并且即使在您关闭浏览器后仍然保持不变。
-
会话存储:相同,但对于一个 URL 和一个浏览器会话是本地的(在浏览器关闭时删除)。
-
SQL 数据库(又名 WebSQL):存储在本地数据库中,您可以通过 SQL 请求访问...似乎已被弃用,因为 IE 和 Firefox 已声明不会实现它。
也许您很快还会听说 IndexedDB(现在在 IE 10、FF 和 Chrome 上受支持),它是一种本地/会话存储,但您可以使用它来存储 javascripts 对象而不是只有字符串。