web storage本地存储方式及区别

一:本地存储(localstorage IE8以上支持)

1-特点:永久存储 永不失效 除非手动删除

2-大小:每个域名5m

3-存储方式:以键值对(key-value)的方式存储

localStorage.setItem("key","value"):设置记录 添加存储内容

localStorage.getItem("key"):取出存储内容

localStorage.removeItem("key"):清除某个键值

localStorage.clear():清除所有存储内容

4-注意:一般我们会将JSON存入localStorage中,但是在localStorage会自动将localStorage转换成为字符串形式,这个时候我们可以使用JSON.stringify()这个方法,来将JSON转换成为JSON字符串

eg:var storage=window.localStorage;

var data={

name:'xiecanyong',

sex:'man',

hobby:'program'

};

var d=JSON.stringify(data);

storage.setItem("data",d);

//将JSON字符串转换成为JSON对象输出

var json=storage.getItem("data");

var jsonObj=JSON.parse(json);

console.log(typeof jsonObj);

5-局限:浏览器的大小不统一,并且在IE8以上的IE版本才支持

                localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡

6-存储类型:数组,图片,json,样式,脚本。。。(只要是能序列化成字符串的内容都可以存储)

二:会话存储(sessionStorage)

 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。

三:web storage和cookie的异同

1-:Web Storage数据完全存储在客户端,不需要通过浏览器的请求将数据传给服务器,因此相比cookie来说能够存储更多的数据,大概5M左右。

2-共同点:都是保存在浏览器端,且同源的。

区别:

cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。

存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。

WebStorage 支持事件通知机制,可以将数据更新的通知发送给监听者。

WebStorage的 api 接口使用更方便。

你可能感兴趣的:(web storage本地存储方式及区别)