sessionStorage|sessionStorage localStorage 和cookie之间的区别

localStorage localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。
sessionStorage sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。源生接口可以接受,亦可再次封装来对Object和Array有更好的支持。
作用域不同 【sessionStorage|sessionStorage localStorage 和cookie之间的区别】不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标 签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。
Cookie 生命期为只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 存放数据大小为4K左右 。有个数限制(各浏览器不同),一般不能超过20个。与服务器端通信:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题。但Cookie需要程序员自己封装

cookie的优点:具有极高的扩展性和可用性
1.通过良好的编程,控制保存在cookie中的session对象的大小。
2.通过加密和安全传输技术,减少cookie被破解的可能性。
3.只有在cookie中存放不敏感的数据,即使被盗取也不会有很大的损失。
4.控制cookie的生命期,使之不会永远有效。这样的话偷盗者很可能拿到的就 是一个过期的cookie。
cookie的缺点:
1.cookie的长度和数量的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB。否则会被截掉。
2.安全性问题。如果cookie被人拦掉了,那个人就可以获取到所有session信息。加密的话也不起什么作用。
3.有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务端保存一个计数器。若吧计数器保存在客户端,则起不到什么作用。
localStorage、sessionStorage、Cookie共同点:都是保存在浏览器端,且同源的。 localStorage和sessionStorage的方法
setItem存储value 用途:将value存储到key字段
sessionStorage.setItem("key", "value"); localStorage.setItem("site", "js8.in");

getItem获取value 用途:获取指定key本地存储的值
var value = https://www.it610.com/article/sessionStorage.getItem("key"); var site = localStorage.getItem("site");

removeItem删除key 用途:删除指定key本地存储的值
sessionStorage.removeItem("key"); localStorage.removeItem("site");

clear清除所有的key/value 用途:清除所有的key/value
sessionStorage.clear(); localStorage.clear();

存储数据 3.1.1 采用setItem()方法存储
sessionStorage.setItem(``'testKey'``,``'这是一个测试的value值'``); ``// 存入一个值

3.1.2 通过属性方式存储
sessionStorage[``'testKey'``] = ``'这是一个测试的value值'``; `

3.2 读取数据 3.2.1 通过getItem()方法取值
sessionStorage.getItem(``'testKey'``); ``// => 返回testKey对应的值`

3.2.2 通过属性方式取值
sessionStorage[``'testKey'``]; ``// => 这是一个测试的value值`

3.3 存储Json对象 sessionStorage也可存储Json对象:存储时,通过JSON.stringify()将对象转换为文本格式;读取时,通过JSON.parse()将文本转换回对象。
var userEntity = { name: 'tom' age: 22 }; // 存储值:将对象转换为Json字符串 sessionStorage.setItem('user', JSON.stringify(userEntity)); // 取值时:把获取到的Json字符串转换回对象 var userJsonStr = sessionStorage.getItem('user'); userEntity = JSON.parse(userJsonStr); console.log(userEntity.name); // => tom

    推荐阅读