loaclstroage介绍以及与sessionStorage与cookies的区别

关于localStorage

localStorage是HTML5中新加的一个特性,这个特性主要是用来作为本地存储来使用的,localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。

localStorage的优势
  • localStorage拓展了cookie的4K限制,解决了cookie存储空间不足的问题

  • localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的

localStorage的局限
  • IE8以上支持——浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性

  • 所获得的值为string类型,需要用JSON转为对象——目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换

  • 隐私模式下不可读取——localStorage在浏览器的隐私模式下面是不可读取的

  • 消耗内存空间——localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡

  • 不能被爬虫抓取到

localStorage与sessionStorage的区别

​ localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空(会话结束被清空

localStorage的使用

1

可以在图中看到,window.loaclStroage的Storage对象下的原型链中有clear ,getItem, setItem和removeItem 这几个方法,使用的时候写入使用setItem(key:string,value:string)方法,但注意写入的value一般为键值对,需要字符串化,通过JSON:stringify( )实现。

写入语句为:

window.localStorage.setItem('a',JSON.stringify({foo:'huxin'}))

get的时候注意,直接的到的为字符串,如图中所示"{"foo":"huxin"}",所以这时候仍旧需要我们的JSON来帮忙

JSON.parse()

如下图的1代码所示

2

想要更改键值对的话,如代码2所示,基本就是上述方法的重复操作。

总结: cookies,sessionStorage 和 localStorage 的区别?

  1. sessionStorage (session)中的数据,这些数据只有在同一个会话中的页面才能访问 并且当会话结束后数据也随之销毁。因此 sessionStorage 不是一种持久化的本地存储,仅仅是会话级别的存储。而 localStorage 用于持久化的本地存储,除非主动删除数据,否则 数据是永远不会过期的。

  2. web storage 和 cookie 的区别

  • Web Storage 的概念和 cookie 相似,区别是它是为了更大容量存储设计的。Cookie 的大小 是受限的,并且每次你请求一个新的页面的时候 Cookie 都会被发送过去,这样无形中浪费 了带宽,另外 cookie 还需要指定作用域,不可以跨域调用。

  • 除此之外,Web Storage 拥有 setItem,getItem,removeItem,clear 等方法,不像 cookie 需要前端开发者自己封装 setCookie,getCookie。但是 Cookie 也是不可以或缺的:Cookie 的作用是与服务器进行交互,作为 HTTP 规范的一部分而存在 ,而 Web Storage 仅仅是为 了在本地“存储”数据而生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值