html5的localStorage浏览器存储总结

1. 什么是localStorage?

1、localStorage 是HTML5中新加入的功能,主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小。
2、localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空。

2. localStorage的优缺点

localStorage的优点:

    1、localStorage拓展了cookie的4K限制
    2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的
    3、localStorage能长期存储数据,只有通过人工或代码删除数据才会清除,否则就一直存在。

localStorage的缺点:

1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性
2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换
3、localStorage在浏览器的隐私模式下面是不可读取的
4、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡
5、localStorage不能被爬虫抓取到

3、localStorage的使用场景及方法

1、3种方法读取localStorage:

  var storage=window.localStorage;
  var domain = {
         id   : 1, 
        count : 1
    };

  //写入domain字段,存储对象时需要转换成JSON字符串形式
  storage.setItem("domain",JSON.stringify(domain));

  //读取字段的三种方法
  var value= storage.getItem("domain");
  value= storage["domain"];
  value= storage.domain;

  //读取后需要使用JSON.parse()方法,转换成JSON对象
  domain = JSON.parse(value);
  alert(domain.count);

2、清除localStorage

var storage=window.localStorage;
//清除所有key
storage.clear();
//清除单个key
storage.removeItem("domain");

3、localStorage的大小限制:

由于浏览器的window.localStorage大小限制在5M左右,在超过存储限制时会抛出异常,因此最好在写入键值时获取异常,清空后重新写入localStorage:
try{
    var storage=window.localStorage;
    domain = JSON.stringify(domain);
    storage.setItem("domain",domain);
}catch(e){
    storage.clear();
    //清除之后再次写入
    storage.setItem("domain",domain);
}

4、localStorage的正确存取形式:

//setItem前,需要将对象转换成JSON字符串形式
domain = JSON.stringify(domain);
storage.setItem("domain",domain);

//getItem后,需要将JSON字符串转换成JSON对象形式,才能进行后续操作
domain = JSON.parse(storage.getItem("domain"));
alert(domain.count);

4、结语

localStorage是一种很好的本地浏览器存储方式,本人的场景需求是统计商品详情页的访问次数,因为是针对浏览器级别的统计,所以利用localStorage存储商品的SPU和访问次数,最终将对应的访问次数推送到远程appboy服务器。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值