通常我们所说的本地存储技术,就是Web存储。Web存储有两个版本:本地存储(Local Storage)和会话存储(Session Storage).两者使用完全相同的API,但本地存储会持久存在(或直到用户清除),而会话存储只要浏览器关闭就会消失。
和Cookie类似,Web存储是与域名一一对应的。和Cookie不同的是,无法让app.foo.com使用www.foo.com存储的数据。(可以借助iframe变通实现)这意味着foo.com和goo.com都可以安全地使用名为name的Web存储键。
使用Web存储
Web存储API有如下4个简单的方法
- localStorage.setItem:设置特定键的值
- localStorage.getItem:检索特定键值
- localStorage.removeItem:删除键及其关联的值
- localStorage.clear:删除所有的键/值对(但只限于发出请求的特定域名)
Web存储仅支持字符串数据。这有时会引起混淆,考虑下面这段代码:
var names = ["zuckjet", "zuckberg"];
localStorage.setItem("names", names);
上面代码可以正常运行。不过,它存储数组的字符串版本,而不是数组本身。如果你调用localStorage.getItem(“names”),那么将得到字符串”zuckjet, zuckberg”.
通常我们使用JSON进行编码。