cookie
,localStorage
和 sessionStorage
的区别?
cookie
是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密),会随着在http请求时被发送到服务端,在浏览器和服务器间来回传递,只能document.cookie = '...'
来修改。
localStorage
和 sessionStorage
不会随着http请求被发送出去,仅在本地保存。
存储大小:
cookie
数据大小不能超过4k;localStorage
和sessionStorage
虽然也有存储大小的限制,可以达到5M或更大;
有效时间:
-
cookie
在设置的过期时间之前一直有效,即使窗口或浏览器关闭; -
localStorage
存储持久数据,没有时间限制的数据存储,浏览器关闭后数据不丢失除非主动删除数据; -
sessionStorage
针对一个 session 的数据存储, 数据在当前浏览器窗口关闭后自动删除;
localStorage
和sessionStorage
的API
localStorage
和 sessionStorage
使用的API相同,常用的有如下几个(以localStorage
为例):
-
保存数据:
localStorage.setItem(key,value);
-
读取数据:
localStorage.getItem(key);
-
删除单个数据:
localStorage.removeItem(key);
-
删除所有数据:
localStorage.clear();
-
得到某个索引的key:
localStorage.key(index);