zoukankan      html  css  js  c++  java
  • localStorage使用总结

      HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。我们这里以 localStorage 为例,简要介绍下 html5 的本地存储,并针对如遍历等常见问题作一些示例说明。 localStorage 是 Html5 本地存储的 API,使用键值对的方式进行存取数据,存取的数据只能是字符串。不同浏览器对该 API 支持情况有所差异,如使用方法、最大存储空间等。 

      存储方式:以键值对(Key-Value)的方式存储字符串。

      主要应用:购物车、客户登录、游戏存档。。。

      可储存的数据类型:数组,图片,json,样式,脚本。。。(只要是能序列化成字符串的内容都可以存储)

      储存地址:C:Users15014AppDataLocalGoogleChromeUser DataDefaultLocal Storage(不同电脑不一样,需要打开隐藏文件显示,但是在C盘搜索localStorage就能搜出这个文件夹。)

    localStorage的优势

    1、localStorage拓展了cookie的4K限制

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

    localStorage的局限

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

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

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

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

    5、localStorage不能被爬虫抓取到

    localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空

    这里我们以localStorage来分析

    localStorage的使用

    首先在使用localStorage的时候,我们需要判断浏览器是否支持localStorage这个属性

    if(!window.localStorage){
                alert("浏览器支持localstorage");
                return false;
            }else{
                //主逻辑业务
            }

    localStorage官方提供了四个方法来辅助我们进行对本地存储做相关操作。

      (1)localStorage.setItem(键名,键值)在本地客户端存储一个字符串类型的数据,其中,第一个参数“键名”代表了该数据的标识符,而第二个参数“键值”为该数据本身。如:

            localStorage.setItem("name", "张三");      //存储键名为name和键值为"张三"的数据到本地
            localStorage.setItem("age", "28");        //存储键名为age和键值为"28"的数据到本地

      (2)localStorage.getItem(键名) 读取已存储在本地的数据,通过键名作为参数读取出对应键名的数据。如:

        var data = localStorage.getItem("name");
        alert(data);//张三

      (3)localStorage.removeItem(键名)移除已存储在本地的数据,通过键名作为参数删除对应键名的数据。如:

        var data2 = localStorage.removeItem("name");//从本地存储中移除键名为name的数据
        alert(data2); //undefined

      (4)localStorage.clear() 移除本地存储所有数据。如:

        localStorage.clear() 移除本地存储所有数据。如:
        localStorage.clear();      //保存着的"age/28"和"name/张三"的键/值对也被移除了,所有本地数据拜拜

       (5)另外,sessionStorage中的四个函数与以上localStorage类的函数用法基本一致,就不再详解。

    下面是一个小实例:

    <script type="text/javascript">  
      
                localStorage.setItem("name", "张三");  
                localStorage.setItem("age", "28");  
              
                verify();   //验证本地存储  
                localStorage.removeItem("name");  
                verify();   //验证name是否存在  
                localStorage.clear();  
                verify();   //验证name和age是否存在  
              
                //自定义验证函数,验证name和age的数据是否存在  
                function verify(){  
                    var type = localStorage.getItem("name");  
                    var price = localStorage.getItem("age");  
                    type = type ? type : '不存在';  
                    price = price ? price : '不存在';  
              
                    alert( "name: " + type + "
    
    " + "age: " + price );  
                }  
                    
            </script>

    其实

    localStorage的写入和读取 有三种方法,这里就一一介绍一下

    if(!window.localStorage){
                alert("浏览器支持localstorage");
            }else{
                var storage=window.localStorage;
                //写入a字段
                storage["a"]=1;
                //写入b字段
                storage.b=1;
                //写入c字段
                storage.setItem("c",3);
                console.log(typeof storage["a"]);
                console.log(typeof storage["b"]);
                console.log(typeof storage["c"]);
                //第一种方法读取
                var a=storage.a;
                console.log(a);
                //第二种方法读取
                var b=storage["b"];
                console.log(b);
                //第三种方法读取
                var c=storage.getItem("c");
                console.log(c);
            }
    

    注意到,刚刚存储进去的是int类型,但是打印出来却是string类型,这个与localStorage本身的特点有关,localStorage只支持string类型的存储。

    localStorage的删除

    1、 将localStorage中的某个键值对删除

    localStorage.setItem("c",3);
    console.log(localStorage.getItem('c'));
    localStorage.removeItem("c");
    console.log(localStorage.getItem('c'));
    

    2、 将localStorage的所有内容清除

    storage.clear();

    localStorage的键获取

    var storage=window.localStorage;
                storage.a=1;
                storage.setItem("c",3);
                for(var i=0;i<storage.length;i++){
                    var key=storage.key(i);
                    console.log(key);
                }
    

    localStorage其他注意事项

    一般我们会将JSON存入localStorage中,但是在localStorage会自动将localStorage转换成为字符串形式

    这个时候我们可以使用JSON.stringify()这个方法,来将JSON转换成为JSON字符串,

    示例:

                var data={
                    name:'xiecanyong',
                    sex:'man',
                    hobby:'program'
                };
                var json_string=JSON.stringify(data);
                localStorage.setItem("data",d);
                console.log(localStorage.data);
    
                //将JSON字符串转换成为JSON对象输出
                var json_str=localStorage.getItem("data");
                var jsonObj=JSON.parse(json_str);
                console.log(typeof jsonObj);

    读取之后要将JSON字符串转换成为JSON对象,使用JSON.parse()方法

  • 相关阅读:
    hdu 4710 Balls Rearrangement()
    hdu 4707 Pet(DFS水过)
    hdu 4706 Children's Day(模拟)
    hdu 4712 Hamming Distance(随机函数暴力)
    csu 1305 Substring (后缀数组)
    csu 1306 Manor(优先队列)
    csu 1312 榜单(模拟题)
    csu 1303 Decimal (数论题)
    网络爬虫
    Python处理微信利器——itchat
  • 原文地址:https://www.cnblogs.com/7qin/p/10197516.html
Copyright © 2011-2022 走看看