• html5 之本地数据存储


    HTML5 提供了两种在客户端存储数据的新方法:

    • localStorage - 没有时间限制的数据存储
    • sessionStorage - 针对一个 session 的数据存储

    cookie与webStorage的对比:

     cookie的缺陷是非常明显的

    1. 数据大小:作为存储容器,cookie的大小限制在4KB左右这是非常坑爹的,尤其对于现在复杂的业务逻辑需求,4KB的容量除了存储一些配置字段还简单单值信息,对于绝大部分开发者来说真的不知指望什么了。

    2. 安全性问题:由于在HTTP请求中的cookie是明文传递的(HTTPS不是),带来的安全性问题还是很大的。

    3. 网络负担:我们知道cookie会被附加在每个HTTP请求中,在HttpRequest 和HttpResponse的header中都是要被传输的,所以无形中增加了一些不必要的流量损失。

    webStroage:

    WebStorage提供两种类型的API:localStorage和sessionStorage,两者的区别看名字就有大概了解,localStorage在本地永久性存储数据,除非显式将其删除或清空,sessionStorage存储的数据只在会话期间有效,关闭浏览器则自动删除。两个对象都有共同的API

    • length:唯一的属性,只读,用来获取storage内的键值对数量。
    • key:根据index获取storage的键名
    • getItem:根据key获取storage内的对应value
    • setItem:为storage内添加键值对
    • removeItem:根据键名,删除键值对
    • clear:清空storage对象

    webStroage的使用实例:

    var ls=localStorage;
                console.log(ls.length);//0
                ls.setItem('name','Byron');
                ls.setItem('age','24');
                console.log(ls.length);//2
                
                //遍历localStorage
                for(var i=0;i<ls.length;i++){
                    /*
                        age : 24 
                        name : Byron 
                    */
                    var key=ls.key(i);
                    console.log(key+' : '+ls.getItem(key));
                }
                
                ls.removeItem('age');
                
                
                for(var i=0;i<ls.length;i++){
                    /*
                        name : Byron 
                    */
                    var key=ls.key(i);
                    console.log(key+' : '+ls.getItem(key));
                }
                ls.clear();//0
                console.log(ls.length);

    注意:

    1. 由于localStorage和sessionStorage都是对象,所以也可以通过”.key”或”[key]”的方式获取、修改键值对,但不推荐这么做

    localStorage.userName='Frank';
    console.log(localStorage['userName']);

    2.虽然localStorage存储在本地,但不同的浏览器存储存储数据是独立的,所以在Chrome上存储的localStorage在FireFox上是获取不到的。

    3. localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理,低版本IE可以使用json2.js

    当然这种存储模式是针对数据量比较小,如果是数据量很多的话,就要用另外一种数据库存储模式了IndexDB数据存储

    基础篇:http://www.cnblogs.com/dolphinX/p/3415761.html

    进阶篇:http://www.cnblogs.com/dolphinX/p/3416889.html

  • 相关阅读:
    iOS开发_微信支付接入报错 +[WXOMTAHelper GUnzip:Out:] in libWeChatSDK.a(MTAHelper.o)
    iOS开发_适配深色模式
    Apple开发_emoji符号含义
    iOS开发_程序闪退的原因以及处理办法
    iOS开发_does not contain bitcode.”的错误解决办法
    Apple开发_限制平板应用运行在mac上窗口的尺寸
    Apple开发_计算一个字符串中包含几个目标子字符串
    OpenCV 简单使用
    效率工具
    win10 安装u8 11.0遇到的问题
  • 原文地址:https://www.cnblogs.com/yujian-bcq/p/3824598.html
Copyright © 2020-2023  润新知