浏览器存储(cookie、localStorage、sessionStorage)记录

三者的区别
作用大小是否会发送给浏览器值的类型存储时间
cookie1. 存储用户信息,获取数据需要与服务器建立连接。2.可存储的数据有限,且依赖于服务器,无需请求服务器的数据尽量不要存放在cookie中,以免影响页面性能4096字节+(每条4k)附加在请求头中发送“menu=[{%22path%22:%22/home%22%2C%22…}]; (此处有空格) token=[{0E…f4b}]”可设置
localStorage1.存储客户端的信息5M+String不过期(可设置过期时间)
sessionStorage1.存储客户端的信息5M+当前页面有效,刷新不丢失
相关API
  • cookie
// 设置cookie 的完整格式:document.cookie="key=value[; expires=date][; domain=domain][; path=path][; secure]"

 /*{
*   expires: 7, // cookie有效期,单位天;默认值:会话cookie,关闭浏览器cookie失效。
*   path: '/', // cookie影响到的路径;值为'/',表示设置cookie在整个域中可用;默认值:创建cookie的页面路径。只有路径相匹配cookie才能被读取到
*   domain: 'example.com', // 定义cookie有效的域。默认值:创建cookie的页面域。浏览器读取cookie的时候只有当cookie的domain和浏览器当前的域名匹配才能读取到,用于cookie 共享。
*   secure: false, // 定义cookie安全性,默认值:false,设置为true,则cookie在http中是无效的,cookie的传输需要使用安全协议(https)。
* 	eg:a.example.com和b.example.com如果他们想要共享cookie那么cookie的domain需要设置为domain=.example.com,path路径需要设置为path=/。这样之后两个域名都能同时访问到cookie了。
* }
*/
var t = new Date( +(new Date()) + 1000 * 120 );
document.cookie = `name=monsterooo; expires=${t.toLocaleTimeString()}; domain=.example.com; path=/`;

// 获取到的cookie 获取当中的一个时,应当先以“; ”分割,再以“=” 分割获取相应cookie名字的值,获取结果===》
"menu=[{%22path%22:%22/home%22%2C%22...}]; token=0E...f4b; tagList=[{%22path%22:%22/%22%2C%22name%22:%22...}]"
  • localStorage & sessionStorage 继承自 Storage。有相同的API设置和获取数据:

  • clear 清空存储中的所有本地存储数据

  • getItem 接受一个参数key,获取对应key的本地存储

  • key 接受一个整数索引,返回对应本地存储中索引的键

  • removeItem 接受一个参数key,删除对应本地存储的key。注意:设置cookie时如果设置了path属性或secure属性,删除的时候要带着这些属性,否则无法成功删除cookie。

  • setItem 接受两个参数,key和value,如果不存在则添加,存在则更新。

说明

1.localStorage的生命周期是永久性的。localStorage存储的数据,即使关闭浏览器,也不会让数据消失,除非主动的去删除数据。如果 想设置失效时间,需自行封装。
2.sessionStorage 的生命周期是在浏览器关闭前。
特性:

  • 关闭浏览器sessionStorage 失效;
  • 页面刷新不会消除数据;
  • 只有在当前页面打开的链接,才可以访sessionStorage的数据,使用window.open打开页面和改变localtion.href方式都可以获 取到sessionStorage内部的数据;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值