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章 客户端存储 W3C Web Storage