核心提示:1.简介webstorage是本地存储,存储在客户端,包括localStorage和sessionStorage。localStoragelocalStorage生命周期是永久,这意味着除非用户显示在...
1.简介
webstorage是本地存储,存储在客户端,包括localStorage和sessionStorage。
localStorage
localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。
sessionStorage
sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。源生接口可以接受,亦可再次封装来对Object和Array有更好的支持。
2.用法
localStorage和sessionStorage使用时使用相同的API,都是以key-value的形式存储:
localStorage.setItem("key","value");//以“key”为名称存储一个值“value” localStorage.getItem("key");//获取名称为“key”的值 localStorage.removeItem("key");//删除名称为“key”的信息。 localStorage.clear();?//清空localStorage中所有信息
3.区别与注意事项
(1)作用域不同
不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标 签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。
(2)数据类型
存储的数据类型必须是String类型,如果存储的数据类型是Object对象的时候,要通过JSON.stringify(obj)转换为String类型,获取之后再通过JSON.parse(strData)解析。