Javascript自学系列:Client-Side Storage
Cookie
Cookie简介:
Cookie指网站为了辨别用户身份储存在客户端上的数据。URL加密。
Cookie和domain挂钩,每次http交互都要发回服务器。Cookie大小,数量受限。非法cookie会被无视。
Cookie组成:
Name, Value, Domain, Path, Expiration, Secure flag.
Name, Value - URL encoded.
Cookie 操作:
document.cookie = “name1:value1;…”
无builtin get/set。
Web Storage
简介:
只存在客户端,不需要发回服务器。储存比cookie更大的数据。
自带getItem,setItem,removeItem
local storage:
持久化存储,同domain, protocol和port下可读。
session storage:
数据在当前浏览器窗口关闭后自动删除,只能通过当前页面读取。
storage event:
storage对象改变时发出的event。
addEventListener(‘storage’,(event)=>{…})
IndexedDB*
数据库,用object储存数据,异步设计。例子:离线图书馆,离线邮箱。
methods:
creation:
// An highlighted block
indexeddb.open("name")
indexeddb.onupgradeneeded = (event)=>{
const db = event.target.result;
db.createObjectStorage('user', {content});}
transaction:
// An highlighted block
const transaction = db.transaction("user")
error handling:
transaction.onerror = (event) =>{}
transaction.oncomplete = (event) =>{}
插入:
add(),只插入,重项报错。
put(), 插入/覆盖。
Cursors:
从transaction提取多项,需要创建cursors。本质是指针,指向第一个结果。
并发:
两个tab同时操作,写
database.onversionchange =()=>{database.close()}
限制:
同源测略,大小取决于浏览器且浮动大。