一、Web Storage与cookies的比较
cookie:保存在浏览器端的信息,可以在有限期内持久化地存储少量的数据,但是也有一定的局限:
1.每一次HTTP请求都会发送cookie信息。这样一次又一次无意义地传输同样的数据,占用了用户带宽。
2.每一次HTTP请求中发送的cookie信息都以未加密的形式在因特网上传输,这样很不安全(除非整个Web应用都是基于SSL的)。
3.Cookie信息量最大不能超过4KB,这足以拖慢Web应用。
但是Cookie默认的各种浏览器都支持,相比而言webStorage则是IE7及以下版本不支持,其实webStorage的支持范围还是足够大的。
Web Storage(又分为sessionStorage和localStorage):
与Cookie相比,Web Storage的优势有以下几点:
1.存储空间更大,每个存储域拥有5MB的空间,这个大小在各浏览器难得的一致。
2.存储内容不会发送到服务器,仅仅存在于本地,不会与服务器发生任何交互,而Cookie的内容会随着请求一并发送给服务器。
3.更多丰富易用的接口,而且基于键值对的形式存储,存储和检索数据都是通过指定的键名,提供了setItem,getItem,removeItem和clear四个基本操作,分别对应存储value、读取value、删除key和清除所有的键值。此外还有storage事件,当键值改变或者clear的时候就可以出发storage事件。
此外sessionStorage和localStorage的区别在于,在有效期上,sessionStorage的内容仅在当前的浏览器窗口关闭前有效,而localStorage则是始终有效,窗口或浏览器关闭也一直保存,可以作持久数据;在作用域上,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面,而localStorage在所有同源窗口中都是共享的。
补充:
1.判断浏览器是否支持localStorage的方法:
1 function support_html5_storage() { 2 return (‘localStorage‘ in window) && window[‘localStorage‘] !== null; 3 }
或者
1 if(window.localStorage) { 2 //do something with localStorage 3 } else { 4 alert("浏览器不支持localStorage!"); 5 }