美文网首页程序员
cookie 与 localStorage的区别及使用

cookie 与 localStorage的区别及使用

作者: itdingrui | 来源:发表于2016-11-29 21:06 被阅读0次

    localStorage属于HTML5的新功能之一,它的作用和之前学的cookie相像,都可以存东西,那么他们之间有什么区别么?今天查找了一些资料,写一些自己收集的区别如下:

    cookie的大小约4k,兼容性在ie6及以上 都兼容,在浏览器和服务器间来回传递,因此它得在服务器的环境下运行,而且可以设定过期时间,默认的过期时间是session会话结束。
    localStorage的大小约5M,兼容性在ie7及以上都兼容,有浏览器就可以,不需要在服务器的环境下运行, 会一直存在,除非手动清除 。

    接下来是两者分别的使用。首先是localStorage的使用,它的使用方法有两种,两种都能实现写与读的功能。手动删除的两种在下面有详细介绍,其中删单个用getItem,删除全部用clear。记住Item里面的第一个是字母是i大写。

    如何查看 localStorage:按F12找到application(resource)点击localStorage,里面有需要查看的写入的东西。

    第一种是常用写法:

      <script>
          //写
          localStorage.a = 12;
           //读
          alert(localStorage.a );
    </script>
    

    第二种是标准写法:

    <script>
       //写setItem
        localStorage.setItem('b','today is a good day');
        localStorage.setItem('c','i am happy to see you');
       // localStorage.removeItem('c');//这个是指定删除
       //localStorage.clear();//这个是全部删除,一般不用
        //读getItem
        alert(localStorage.getItem('b'));
    </script>
    

    Cookie的使用方法:
    写cookie: document.cookie='212';
    读cookie: alert(document.cookie);
    expires:设置过期时间
    ar oDate=new Date();
    oDate.setDate(oDate.getDate()+3);
    document.cookie='a=212;expires='+oDate;
    path: /(根目录) 默认存在当前目录
    document.cookie='b=212;path=/;expires='+oDate;
    domain: 存域名(放一级域名)
    document.cookie='a=212;domain=www.baidu.com;expires='+oDate;
    Cookie的存,取,删
    存cookie: function setCookie(name,value,iDay);
    获取cookie: getCookie(name)
    删除cookie: removeCookie(name)
    function removeCookie(name){setCookie(name,'任意值',iDay);}

    网页换肤功能:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <link rel="stylesheet" id="link1" href="css/1.css" />   
        <body>
            <input type="button" value="变黑" />
            <input type="button" value="变红" />
            <input type="button" value="变蓝" />
        </body>
    </html>
    <script type="text/javascript" src="js/cookie.js" ></script>
    <script>
        var oLink=document.getElementById('link1');
        var aBtn=document.getElementsByTagName('input');
        var oBgName=getCookie('bgName');
        if(oBgName){
            oLink.href='css/'+oBgName+'.css';
        }   
        for (var i=0;i<aBtn.length;i++) {
            (function(index){
                aBtn[index].onclick=function(){
                    var _index=index+1;
                    oLink.href='css/'+_index+'.css';
                    setCookie('bgName',_index,3);
                };
            })(i);      
        }
    </script>
    

    //调用的Cookie.js封装

    function setCookie(name,value,iDay){
    
       if(iDay){
    
          var oDate=new Date();
    
          oDate.setDate(oDate.getDate()+iDay);
    
          document.cookie=name+'='+value+';path=/;expires='+oDate;限时?
    
       }else{
    
          document.cookie=name+'='+value+';path=/;';
    
       }
    
    };
    
    function getCookie(name){
    
       var arr=document.cookie.split('; '); 
    
       for (var i=0;i<arr.length;i++) {
    
          var arr2=arr[i].split('=');分开字符串
    name=value
    
          //arr2[0]
    
          if(arr2[0]==name){
    
             return arr2[1];
    
          }
    
       }
    
       return '';
    
    }
    
    function removeCookie(name){
    
       setCookie(name,'任意值',-10);
    
    }
    

    1.css

    body{
        background-color: #000;
    }
    

    2.css

    body{
        background-color: #f00;
    }
    

    3.css

    body{
        background-color: blue;
    }
    

    相关文章

      网友评论

        本文标题:cookie 与 localStorage的区别及使用

        本文链接:https://www.haomeiwen.com/subject/itlzpttx.html