小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
本地存储的 localStorage 和 sessionStorage
什么是本地存储
- 通过本地存储(Local Storage),web 应用程序能够在用户浏览器中对数据进行本地的存储。
- 在 HTML5 之前,应用程序数据只能存储在 cookie 中,包括每个服务器请求。本地存储则更安全,并且可在不影响网站性能的前提下将大量数据存储于本地。
- 与 cookie 不同,存储限制要大得多(至少5MB),并且信息不会被传输到服务器。
注意:
- 不同域名下面设置同样的本地存储是不会冲突的,因为不同域名下面访问的页面不同
- 不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。
cookie、localStorage 和 sessionStorage的区别
| 特性 | Cookie | localStorage | sessionStorage |
|---|---|---|---|
| 数据的生命期 | 一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效 | 除非被清除,否则永久保存 | 仅在当前会话下有效,关闭页面或浏览器后被清除 |
| 存放数据大小 | 4K左右 | 一般为5MB | |
| 与服务器端通信 | 每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题 | 仅在客户端(即浏览器)中保存,不参与和服务器的通信 | |
| 易用性 | 需要程序员自己封装,源生的Cookie接口不友好 | 源生接口可以接受,亦可再次封装来对Object和Array有更好的支持 |