localstorage,即"web存储",某些浏览器供应商也叫"本地存储"、"dom存储",原本作为html5标准的一部分,后来因为某些原因被抽离出来作为单独的web应用标准。localstorage提供了一种方式,让web页面在客户端浏览器中以键值对的形式存储本地字符串数据,无论是用户是离开该站点,刷新,关闭浏览器还是其他操作,存储的数据依然存在。
一、localstorage与cookie
localstorage与cookie一样,都是在客户端浏览器下存储数据,但是又有不同:
1、cookie是document的属性,值类型为string,localstorage是window的属性,值类型为object;
2、cookie会随着每一次http请求附带发送,无论服务器端是否需要,而且未加密(基于ssl的站点除外);localstorage不会,除非手动将其发送到远程服务器,否则只单纯存储在客户端本地;
3、cookie最大为4kb,localstorage在每个域下最大为5mb;
4、就支持性而言,主流浏览器如ie6+,chrome,firefox都支持cookie,但是低版本的ie如ie67不支持localstorage。
二、localstorage操作
ie对localstorage的操作需要在非本地环境(非file://...)下进行才能看到效果。
1、判断浏览器支持性
2、localstorage的属性和方法
1)获取 getitem(key) 或
localstorage[key]
2)修改 setitem(key, value) 或者 localstorage[key] = value
3)删除指定的key, removeitem(key)
4)删除所有key
5) length 用来获取存储区所有数据的个数
6) key 用来获取localstorage指定索引值的key
注意:localstorage对象在操作setitem的属性的顺序并不一定是实际存储在localstorage上的索引顺序,localstorage在setitem执行完后,标准浏览器如chrome,firefox等以及高版本的ie9+会在内部按照key的unicode进行一次排序,但是ie678则只是按照属性定义的顺序输出,不对key进行排序,如:
三、localstorage事件
localstorage提供了监听localstorage实际发生变化的事件storage,任何时候只要setitem(),
getitem(), clear(), removeitem()方法被调用,且实际改动了数据时,都会在window对象上触发storage事件。