HTMl5的存储方式sessionStorage和localStorage详解
html5中的Web Storage包罗了两种储备方式:sessionStorage和localStorage。sessionStorage用于当地储备一个会话(session)中的数据,这些数据只要在统一个会话中的页面才能拜访并且当会话完毕后数据也随之烧毁
因此sessionStorage不是一种耐久化的当地储备,仅仅是会话级别的储备。而localStorage用于耐久化的当地储备,除非主动删除数据,不然数据是永久不会过期的。
一、web storage和cookie的不同
Web Storage的概念和cookie类似,不同是它是为了更大容量储备设计的。Cookie的大小是受限的,并且每次你恳求一个新的页面的时候Cookie都会被发送过去,这样无形中白费了带宽,别的cookie还需要指定作用域,不成以跨域调取。
除此之外,Web Storage具有setItem,getItem,removeItem,clear等办法,不像cookie需要前端开发者本人封装setCookie,getCookie。
但是Cookie也是不成以或缺的:Cookie的作用是与效劳器停止交互,作为HTTP标准的一部分而存在 ,而Web Storage仅仅是为了在当地“储备”数据而生(来自@otakustay 的纠正)
二、html5 web storage的阅读器支撑状况
阅读器的支撑除了IE7及以下不支撑外,其他标准阅读器都完全支撑(ie及FF需在web效劳器里运转),值得一提的是IE总是办妥事,例如IE7、IE6中的UserData其实就是javascript当地储备的解决方案。通过简便的代码封装可以统一到所有的阅读器都支撑web storage。
要推断阅读器可否支撑localStorage可以使用下面的代码:
复制代码
代码如下:
if(window.localStorage){ alert("阅读支撑localStorage") } else { alert("阅读暂不支撑localStorage") } //或者 if(typeof window.localStorage == 'undefined'){ alert("阅读暂不支撑localStorage") }
三、localStorage和sessionStorage操纵
localStorage和sessionStorage都具有雷同的操纵办法,例如setItem、getItem和removeItem等
localStorage和sessionStorage的办法:
setItem储备value
用处:将value储备到key字段
用途:.setItem( key, value)
代码示例:
复制代码
代码如下:
sessionStorage.setItem("key", "value"); localStorage.setItem("site", "js8.in");
getItem猎取value
用处:猎取指定key当地储备的值
用途:.getItem(key)
代码示例:
复制代码
代码如下:
var value = sessionStorage.getItem("key"); var site = localStorage.getItem("site");
removeItem删除key
用处:删除指定key当地储备的值
用途:.removeItem(key)
代码示例:
复制代码
代码如下:
sessionStorage.removeItem("key"); localStorage.removeItem("site");
clear清除所有的key/value
用处:清除所有的key/value
用途:.clear()
代码示例:
复制代码
代码如下:
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属性实现遍历
sessionStorage和localStorage供给的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); }
六、storage事件
storage还供给了storage事件,当键值改动或者clear的时候,就可以触发storage事件,如下面的代码就增加了一个storage事件改动的监听:
复制代码
代码如下:
if(window.addEventListener){ window.addEventListener("storage",handle_storage,false); } else if(window.attachEvent) { window.attachEvent("onstorage",handle_storage); } function handle_storage(e){ if(!e){e=window.event;} }
storage事件对象的详细属性如下表:
Property | Type | Description |
key | String | The named key that was added, removed, or moddified |
oldValue | Any | The previous value(now overwritten), or null if a new item was added |
newValue | Any | The new value, or null if an item was added |
url/uri | String | The page that called the method that triggered this change |
HTML5所有标签汇总及标签意义说明
以上就是HTMl5的储备方式sessionStorage和localStorage详解的具体内容,更多请关注百分百源码网其它相关文章!