cookie 与 localStorage的区别及使用

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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容