localStorage,sessionStorage和cookie的介绍及区别

localStorage,sessionStorage和cookie的介绍及区别
1、localStorage
localStorage是HTML5规范中作为持久化保存客户端数据的方案, localStorage可以用于数据缓存,日志存储等应用场景
localStorage特征:
受同源策略的限制
存储空间一般都在5MB左右
键值对最终的存储形式是字符串
2、sessionStorage
会话,是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。但是页面关闭后,sessionStorage中的数据就会被清空
3、cookie
实际上就是一些信息,这些信息以文件的形式存储在客户端计算机上,当用户访问了某个网站,可以通过cookie向访问者电脑上存储数据(页面用来保存信息)
cookie 只能作为临时存储,当了浏览器关闭,就会自动销毁
cookie作用域为当前域,有文件夹路径的区分,cookie是以域当中的文件夹来存储的
http://www.jd.com/index.html:在这个域中任何文件都可以写cookie,存储的为宗旨都是以这个域作为存储空间的,别的域不能访问,
cookie的功能:在浏览器中进行数据的存储,用户名、密码
cookie存储的数据类新型:字符串
任何页面不能向本地存储文件
缺点:可能被禁用、是与浏览器相关的、可能被删除、安全性不够高
cookie的用法
document.cookie = “name=”mcy””;
会将key相同的值覆盖掉
存储cookie数据,

var obj = getCookie();
    console.log(obj)
    function getCookie() {
      return document.cookie.split(/;\s*/).reduce((value, item) => {
        // console.log(item.match(/([^=]+)=([^=]+)/).slice(1));
        var arr = item.split("=");
        value[arr[0]] = isNaN(arr[1]) ? arr[1] : Number(arr[1]);
        return value;
      }, {})
    }

获取cookie数据:document.cookie
使用cookie
1、刷新页面时可以使用
2、跳转到当前域所在另外页面时可以获取前面cookie存储的数据内容
cookie可以设置过期时间
一、

var date=new Date();
      date.setMinutes(6);
      document.cookie="name=xietian;expires="+date.toUTCString();

二、

var date=new Date();
  date.setMinutes(15);
  Utils.setCookie("price",300,date);

如何删除以及设置了过期失效的cookie

Utils.setCookie("password","",new Date());
Utils.setCookie("user","",new Date());

clearCookie 清除所有cookie
getCookie 获取所有cookie

如果删除以及设置了过期失效的cookie

Utils.setCookie("password","",new Date());
Utils.setCookie("user","",new Date());

cookie的生存期*:
在默认情况下,cookie是临时存在的。在一个浏览器窗口打开时,可以设置cookie,只要该浏览器窗口没有关闭,cookie就一直有效,而一旦浏览器窗口关闭后,cookie也就随之消失。如果想要cookie在浏览器窗口之后还能继续使用,就需要为cookie设置一个生存期。所谓生存期也就是cookie的终止日期,在这个终止日期到达之前,浏览器都可以读取该cookie。一旦终止日期到达之后,该cookie将会从cookie文件中删除。

localStorage、sessionStorage与cookie的区别
(1)cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。
(2)存储大小限制也不同
sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。
(3)数据有效期不同
localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持; cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。
(4)作用域不同
localStorage 在所有同源窗口中都是共享的;
sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;
cookie也是在所有同源窗口中都是共享的。
(5)通信
localStorage:仅在客户端(即浏览器)中保存,不参与和服务器的通信;不会自动把数据发送给服务器,仅在本地保存
sessionStorage:仅在客户端(即浏览器)中保存,不参与和服务器的通信;不会自动把数据发送给服务器,仅在本地保存
cookie:十种携带在同源的http请求中,即使不需要,故cookie在浏览器和服务器之间来回传递;如果使用cookie保存过多数据会造成性能问题
(6)易用性
cookie:需要自己进行封装,原生的cookie接口不够友好
sessionStorage:原生接口可以接受,可以封装来对Object和Array有更好的支持
localStorage:原生接口可以接受,可以封装来对Object和Array有更好的支持

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
localStorage, sessionStorage, 和 cookie 都用于在客户端存储数据,但它们有以下几个主要区别: 1. **数据生命周期**[^2]: - Cookie: 数据在设置的过期时间之前一直有效,即使关闭浏览器也会保留,除非特别设置为会话Cookie。 - sessionStorage: 仅在当前浏览器会话期间有效,即当浏览器窗口关闭时数据会被清除。 - localStorage: 数据永久有效,直到用户手动清除或浏览器清理缓存。 2. **数据传输**[^1]: - Cookie: 数据在浏览器和服务器间往返。 - sessionStoragelocalStorage: 不直接发送到服务器,仅在本地存储。 3. **存储大小和路径**: - Cookie: 通常有4k的大小限制,并且可以通过路径属性指定数据的范围。 - sessionStoragelocalStorage: 较大的存储空间(通常5M或更大),没有路径限制。 4. **跨域共享**: - Cookie: 在同源策略下共享,即同一个协议、域名和端口。 - sessionStoragelocalStorage: 仅在同源窗口内共享,即使在不同的标签页也共享。 5. **事件通知**: - Web Storage (localStoragesessionStorage): 支持事件通知,可以监听数据的变化。 在实际使用中,选择哪种存储方式取决于数据的生命周期、隐私需求以及是否需要跨页面或跨会话共享。例如,如果需要跨会话保持数据,可以选择localStorage;如果数据不需要持久化且需要跨页面共享,sessionStorage是个好选择;而cookie适合短期存储少量信息,如用户首选项。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值