cookie与webStorage
cookie
Cookie 是一些数据, 存储于你电脑上的文本文件中。
当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。
Cookie 的作用就是用于解决 『如何记录客户端的用户信息』:
1. 当用户访问 web 页面时,他的名字可以记录在 cookie 中。
2. 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。
一个cookie是以键值对的形式存储的,如:
1 | name = xxf |
cookie的不足
- cookie的大小限制在4KB;
- cookie会伴随http请求一起被发送,会浪费网络带宽
- cookie的正确操作比较困难
session
所谓session,指的就是用户在浏览某个网站时,从进入网站到关闭浏览器所经过的这段时间,也就是用户浏览这个网站所花费的时间。
Web Storage
Web Storage 是HTML5新增的一种用来在客户端本地进行数据保存的功能。
分为sessionStorage
和localStorage
两种,其中sessionStorage
保存期限(即有效使用期限)即一次session
的时间;而localStorage
则会直接将数据保存到客户端本地的硬件设备(通常是硬盘)中,浏览器关闭后也不会销毁,下次打开浏览器时依然能被使用!
sessionStorage
为临时保存localStorage
为永久保存(没有默认保存期限?)- Web Storage 是按浏览器来保存数据的,即不同浏览器之间保存的Web Storage不能互用!
sessionStorage
和localStorage
是window
对象的属性,不需要声明定义!
api操作
- 保存数据:使用
setItem()
方法来保存一对数据,如:
1 | // 第一个参数为键名,第二个参数为键值 |
也可以直接对sessionStorage
对象设定自定义属性来保存数据:
1 | sessionStorage.name = "xxf"; |
- 读取数据:使用
getItem()
方法来读取某键名对应的数据:
1 | console.log(sessionStorage.getItem("name")); // xxf |
同理,也可以直接访问对象属性来获取数据:
1 | console.log(sessionStorage.name); // xxf |
- 删除单个数据:使用
removeItem()
方法删除某一数据:
1 | sessionStorage.removeItem("name"); |
- 删除所有数据:使用
clear()
方法删除所有的数据:
1 | sessionStorage.clear(); |
- 按照索引获取对应数据的键名:使用方法
key()
: