LocalStorage是HTML5 提供的在客户端存储数据的方法。替代但不同于之前的globalStorage,规则作用范围事先已设定好,是同一个域名(子域无效),使用同一种协议,在同一个端口上。
目前主流的较新版浏览器除IE8以下的以外都支持localstorage。
localStorage 方法存储的数据没有时间限制,除非主动删除,否则永久有效。目前仅支持字符串数据的存取。
localStorage是属于Storage的实例,Storage接口如下:
1 interface Storage { 2 readonly attribute unsigned long length; 3 DOMString? key(unsigned long index); 4 getter DOMString getItem(DOMString key); 5 setter creator void setItem(DOMString key, DOMString value); 6 deleter void removeItem(DOMString key); 7 void clear(); 8 };
通过接口可知,Storage实例具有的方法有:
key(index): 在指定的数字位置获取该位置的名字(key)。
getItem(key): 根据指定的名称key获取对应的值。
setItem(key, value): 设置名称key对应的值value。
removeItem(key): 删除名称key对应的名-值对。
clear(): 删除所有值。
另外还有length属性可以获取存储的key-value数量。
读取和设置数据还可以使用点属性名的方式,如
localStorage.name = "test";
var name = localStorage.name; //name = "test"
delete localStorage.name; //删除
虽然如此,但是建议使用接口规范的方法操作。getItem、setItem、removeItem
代码示例1:
1 if(window.localStorage){ 2 window.localStorage.setItem("name","test-OK");//存 3 var name = window.localStorage.getItem("name");//取 4 window.localStorage.removeItem("name");//删 5 }else{ 6 throw "LocalStorage not available."; 7 }
对于只支持globalStorage的浏览器,localStorage可用globalStorage[location.host];
参考资料:
《JavaScript高级程序设计(第二版)》 第19章 客户端存储
http://www.w3.org/TR/webstorage/ W3C Web Storage