localStorage以及与cookie对比

最近做一个项目,可以只兼容现代的浏览器,客户端存储就使用了localStorage。

localStorage与sessionStorage作为客户端存储数据的手段,是cookie这方面的替代品,与cookie相比,localStorage有明显的优点。

  • cookie存储有限,浏览器最多存4k;localStorage浏览器可以存5M
  • cookie同域名下50个置顶(最新浏览器可能多些了);localStorage存储,无域名限制
  • cookie都会随着网络请求,传输到服务器,一定情况下,会造成性能浪费;localStorage不会传输
  • cookie可以设置过期时间,或者浏览器关闭即过期;localStorage永不过期,只能通过JS删除
  • cookie可以设置根域名;localStorage只能是当前的域名,无法更改,而且取不到其余域下的
  • cookie可以设置path路径,用于做数据隔离;localStorage没有path,只能存储在根路径下
  • localStorage使用JS操作的代码,比cookie操作的代码简单的多,因为它只有key-value这俩字段

localStorage VS sessionStorage

两者只有一个区别,就是sessionStorage在浏览器关闭的时候,会消失掉,而localStorage不会消失掉
浏览器刷新界面的话,sessionStorage也不会消失

localStorage的限制

  • localStorage只能存储字符串类型的数据,如果是int、float数据,可以直接存储,拿出来的时候,需要进行转换
  • 如果是数组、json数据的话,需要先通过JSON.stringify将数据处理成字符串存入,取出来的时候,需要通过JSON.parse将数据还原成之前的格式
  • 兼容性,IE8及以下破浏览器不支持,这个慢慢可以忽略了
  • localStorage的读取需要浏览器IO操作,也不是越多越好
  • 在浏览器的隐私模式下,localStorage是不好使的
  • 在IOS的隐私模式下,通过window.localStorage判断,localStorage是好使的,但是实际上,数据会存入不上

总结

localStorage的出现,为浏览器端数据缓存,推进了强大的一步

分享
返回顶部