JS中cookies、sessionStorage 、 localStorage、indexDB 的区别
文章类型:Javascript
发布者:hp
发布时间:2023-03-15
在实际开发过程中,有业务场景需要进行存储,主要是cookies、sessionStorage 、 localStorage、indexDB
一:相同点
都存储在客户端,都是用于保存数据的方式
二:不同点
1:存储位置不同
cookie一般由服务器端写入
sessionStorage和localStorage、indexDB由客户端写入
2:大小不同
cookie数据大小不能超过4k
sessionStorage和localStorage可以达到5M或更大,有大小限制
indexDB无限,没有大小限制
3:有效时间不同
localStorage 和indexDB存储持久数据,浏览器关闭后数据不丢失,除非主动删除数据
sessionStorage 数据在当前浏览器窗口关闭后自动删除
cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
4:交互方式不同
cookie是为标示用户身份储存在客户端上的数据,通常经过加密,始终在http请求中携带,在浏览器和服务器间来回传递,存储过多会引发性能问题以及头文件过大错误
sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存
5:实用性不同
cookie源生接口不友好,需要手动封装
sessionStorage和localStorage源生接口和再次封装对Object和Array有更好的支持
6:作用域不同
sessionStorage不在不同的浏览器窗口中共享
localStorage、cookie在所有同源窗口中都是共享的
7:应用场景不同
cookie一般用于存储登录验证信息ID或者token
SessionStorage一般用于检测用户是否是刷新进入页面
LocalStorage一般用于存储不易变动的数据,减轻服务器的压力