localStorage和sessionStorage的区别

localStorage和sessionStorage的区别

两者都可以拿来作为缓存

区别

  • localStorage生命周期是永久,浏览器不清除就代表一直存在
  • 不同浏览器无法共享localStorage,同一个浏览器不同页面可以共享(页面属于相同域名和端口

sessionStorage的特点

  • sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了
  • sessionStorage的大小最大只有4kb
  • 不同页面或标签页间无法共享sessionStorage的信息
  • 通过getItem或直接使用localStorage[“key”]获取到的信息均为实际存储的副本,不能直接通过修改对象达到修改值的目的

使用

  • setItem localStorage.setItem(this.$route.params.deploy_job_id + '-' + unitId, JSON.stringify(this.selectedHosts))
  • getItem JSON.parse(localStorage.getItem(this.$route.params.deploy_job_id + '-' + unit))

这里需要注意的是,存储和读取的逻辑和redis操作有点类似,都必须是string类型,如果存储的是obj或者arr,都需要利用json模块转一次;读取的时候,再解析成obj即可