【JavaScript】前端存储(一) —— cookie、sessionStorage、localStorage

一、概念及作用

  1. cookie

    在浏览某些网站时,这些网站会把一些数据存在客户端,用于使用网站等跟踪用户、实现用户自定义功能等;cookie可以设置过期时间,当超过时间期限后,cookie就会自动消失。

  2. sessionStorage

    sessionStorage是存放在服务器端的Storage类型的一个对象,用于存放用户的数据,实现网页之间数据传递,会在一定时间内保存在服务器上;sessionStorage为临时保存。

  3. localStorage

    localStorage也是Storage类型的一个对象,但数据保存在客户端本地; localStorage为永久保存。

二、共同点

​ 三者都是保存在浏览器端,并且都是同源的。

注意:需要注意的是可以在浏览器控制台直接访问它们,所以不应该该存入敏感数据。

三、区别

  1. cookie

    cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而seesionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以显示cookie只属于某个路径下,存储容量很小,只有4K。

  2. sessionStorage

    sessionStorage仅在当前浏览器窗口关闭前有效,浏览器窗口关闭后就被清除了,存储容量可达5M。

  3. localStorage

    localStorage在所有同源窗口中都是共享的,且如果未被清除会一直存在,存储容量可达5M。

总结:

cookiesessionStoragelocalStorage
大小4K5M5M
有效期默认浏览器关闭即被清除,可自定义设置有效时间浏览器窗口关闭即被清除永久保存,除非手动清除
作用域在所有的同源窗口中共享仅在当前浏览器窗口有效在所有的同源窗口中共享

四、用法

  1. cookie

    // 在vue 项目中可以使用 js-cookie 插件存取 cookie ,非常方便
    import cookies from 'js-cookie'
    
    // 存储
    cookies.set('token', 'token')
    
    // 取值
    cookies.get('token')
    
    // 删除
     cookies.remove('token')
    
    
    // 原生 js 方式
    
    // 存储
    // 创建 cookie
    document.cookie="name=zhangsan"
    // 可以为 cookie 添加一个过期时间(以 UTC 或 GMT 时间),默认情况 cookie 在浏览器关闭时删除
    document.cookie="name=zhangsan; expires=Thu, 18 Dec 2043 12:00:00 GMT"
    // 可以使用 path 参数告诉浏览器 cookie 的路径,默认情况下,cookie 属于当前页面
    document.cookie="name=zhangsan; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/"
    
    // 取值
    var x = document.cookie
    
    // 清除
    //删除 cookie 非常简单。您只需要设置 expires 参数为以前的时间即可
    document.cookie = "name=; expires=Thu, 01 Jan 1970 00:00:00 GMT"
    
  2. sessionStorage

    // 存储
    sessionStorage.setItem('name', '张三')
    // 存储一个对象
    sessionStorage.setItem('name', JSON.stringify(obj))
    
    // 取值
    sessionStorage.getItem('name')
    // 取出一个对象的值
    let obj = JSON.parse(sessionStorage.getItem('name'))
    
    // 删除一条数据
    sessionStorage.removeItem('name')
    // 清除所有数据
    sessionStorage.clear()
    
  3. localStorage

    localStorage 的存值取值方式与sessionStorage相同

    //  存储
    localStorage.setItem('name', '张三')
    // 存储一个对象
    localStorage.setItem('name', JSON.stringify(obj))
    
    //  取值
    localStorage.getItem('name')
    // 取出一个对象的值
    let obj = JSON.parse(localStorage.getItem('name'))
    
    // 删除一条数据
    localStorage.removeItem('name')
    // 清除所有数据
    localStorage.clear()
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马大头0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值