sessionStorage localStorage 和 cookie 之间的区别转

如题所述

首先sessionStorage localStorage都是继承 Web Storage 接口的。参考:

https://developer.mozilla.org/zh-CN/docs/Web/Guide/API/DOM/Storage




相同:不管sessionStorage localStorage 还是 cookie 都是存储用户数据的。


不同:

1、cookie的数据是会通过http请求带到服务器的,同一域名下的所有请求都会带上它。可以想象,如果cookie很大是会影响性能的。


2、sessionStorage localStorage 是不会通过http请求的,所以操作它的方法一般是js。


3、sessionStorage 和 localStorage的区别 。其实名字上就可以分辨出来。sessionStorage是一次生命周期是一次浏览器窗口的‘生命周期’(当前这个窗口关掉就没了,并不需要关闭整个浏览器。只要你这个窗口不关闭,不管你跳转过几个域名,sessionStorage都不会丢失,只是你看不到,你再跳回原本域名下就有能看到),浏览器窗口关闭后就没了。至于localStorage只要你不删除,他会永远保存在浏览器中。没有超时时间


4、还有更细节的,从第3条。我们就发现localStorage其实是能做到不同窗口之间传递值的。当然cookie也能做这样的事,但性能问题肯定能用localStorage当然更好了。


5、localStorage sessionStorage 都是html5新加的属性,老版本的IE那必须是“不”支持的。。。这时候只能用cookie了。


6、还有一点 localStorage sessionStorage 和 cookie都遵循 '同源' 的原则。就是域名必须一样。这个还是很多可讲的还是建议看下。关于这个,cookie是涉及到跨域的问题。不同浏览器下用不同的方法是能让cookie跨域的。localStorage sessionStorage 就非常严格,子域名都不能跨。http和https也不能跨。


可能还有别的没想到的。觉得最好自己看下API就都明白了。


关于localStorage sessionStorage我新建了一个开源项目,封装了下,添加了‘超时时间’和 ‘序列化方法'(因为本身他们只支持保存string类型的数据)。


项目地址:https://github.com/WQTeam/web-storage-cache


希望能帮到你。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-16
百度一下吧,这种资料挺多的
相似回答