html5中的Web Storage包括了两种存储方式: sessionStorage
和 localStorage
。
LocalStorage
和SessionStorage
都具有相同的操作方法,四个API。
setItem
:将value储存到key字段
sessionStorage.setItem("key", "value");
localStorage.setItem("name", "Tom");
getItem
:获取本地存储的key的值
sessionStorage.getItem("key");
localStorage.getItem("name");
removeItem
:删除本地存储的key的值
sessionStorage.removeItem("key");
localStorage.removeItem("name");
clear
:清除所有的本地存储的key值
sessionStorage.clear();
localStorage.clear();
web Storage不但可以用自身的setItem
,getItem
等方便存取,也可以像普通对象一样用点(.)操作符,及[]的方式进行数据存储,代码示例:
var storage = window.localStorage;
storage.key1 = "hello";
storage["key2"] = "world";
console.log(storage.key1);
console.log(storage["key2"]);
localStorage
和sessionStorage
的key
和length
属性实现遍历
var storage = window.localStorage;
for (var i=0, len = storage.length; i < len; i++){
var key = storage.key(i);
var value = storage.getItem(key);
console.log(key + "=" + value);
}
LocalStorage
、SessionStorage
、Cookie
的比较:
LocalStorage
是没有时间限制的数据存储,除非被清除,否则永久保存,仅在客户端(即浏览器)中保存,不参与和服务器的通信;
SessionStorage
是仅在当前会话下有效,关闭页面或浏览器后被清除,仅在客户端(即浏览器)中保存,不参与和服务器的通信;
Cookie
可设置失效时间,每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题。