cookie;
localStorage;sessionStorage;
IndexedDB;
书摘&心得:
1 cookie
- 详见第六章 HTTP首部“为Cookie服务的首部字段”
- cookie有字节限制和数量限制,在存储数据方面较弱
- 大多数浏览器对cookie的限制是不超过4096字节
- 毕竟最初用于在客户端存储会话信息
- document.cookie
- 可以读取页面包含的所有有效cookie字符串
- 也可以设置新的cookie字符串
HTTP-only的cookie只能在服务器读取,javascript无法取得这种cookie的值。
2 Web Storage
两个目标:
- ❑ 提供在cookie之外的存储会话数据的途径;
- ❑ 提供跨会话持久化存储大量数据的机制。
- 定义了两个对象:localStorage和sessionStorage。
- localStorage是永久存储机制
- sessionStorage是跨会话的存储机制。
- Storage类型用于保存名/值对数据
- Storage类型只能存储字符串。非字符串数据在存储之前会自动转换为字符串。
- 方法
- ❑ clear():删除所有值;不在Firefox中实现。
- ❑ getItem(name):取得给定name的值。
- ❑ key(index):取得给定数值位置的名称。
- ❑ removeItem(name):删除给定name的名/值对。
- ❑ setItem(name, value):设置给定name的值。
- 当Storage对象发生变化时,都会在文档上触发storage事件
- 对于sessionStorage和localStorage上的任何更改都会触发storage事件
限制
sessionStorage对象只存储会话数据
要访问同一个localStorage对象,页面必须来自同一个域(子域不可以)、在相同的端口上使用相同的协议。
- 用法和sessionStorage一样
数据会保留到通过JavaScript删除或者用户清除浏览器缓存
是浏览器中存储结构化数据的一个方案
- 思想是创造一套API,方便JavaScript对象的存储和获取,同时也支持查询和搜索。
- 也就是将数据直接存在客户端,不与服务端交互
- 是客户端的数据库
- 类似于MySQL或Web SQL Database
- 使用对象存储而不是表格保存数据
- 用到的地方应该很少,大多数场景web Storage就够用了。