js Cookie和localStorage的使用和区别

Cookie的使用
  • Cookie简介:
    Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于 RFC2109 和 2965 中的都已废弃,最新取代的规范是 RFC6265[1]。(可以叫做浏览器缓存)(百科上的正经解释,反正我也找不到更好的解释了n.n)

  • Cookie需要放在服务器环境下,所以首先自己需要配置一个服务器,可以用Wampserver(需要手动开启)也可以用AppServ(默认开启),安装完成后打开http://localhost/ 去看看服务器有没有装成功。

  • 使用Cookie需要注意:
    (小 生存生命周期)
    1.放在服务器环境
    2.不安全
    3.大小4k
    4.cookie取出来的东西都是字符串
    5.生存生命周期 默认的就是浏览器关闭

  • Cookie的基本用法
    1.存Cookie: document.cookie='212';
    2.取Cookie: alert(document.cookie);
    3.存Cookie有 name和 value 两个值
    document.cookie='name=value';
    4.expires:设置过期时间
    var oDate=new Date();
    oDate.setDate(oDate.getDate()+3); document.cookie='a=212;expires='+oDate;
    5.path: /(根目录) 默认存在当前目录
    document.cookie='b=212;path=/;expires='+oDate;
    6.domain: 存域名(放一级域名)
    document.cookie='a=212;domain=www.baidu.com;expires='+oDate;

  • 设置Cookie

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=/;';  
 }
};
  • 获取Cookie
function getCookie(name){
   /*将获取到的字符串变成数组纯在arr中*/
   /*得到的数据格式是这样的a=11; b=12*/
   var arr=document.cookie.split('; ');
    for (var i=0;i<arr.length;i++) {
      /*再拆分一次*/
      var arr2=arr[i].split('=');
      //判断arr2[0]是否是要读取的Cookie
      if(arr2[0]==name){
         return arr2[1];
      }
   }
   return '';
}
  • 删除Cookie
function removeCookie(name){
   /*当设置的时间小于0,就可以移除cookie*/
   setCookie(name,'任意值',-10);
}

封装好的在这里https://github.com/youfrweb/Cookie/blob/master/cookie.js

localStorage的使用
  • localStorage也是用于本地处存储的,和Cookie有些区别:
    本地存储cookie localStorage 兼容性 IE7+
    如何查看 localStorage
    F12-application(resource)->localStorage 存储 localStorage.a =12; 注意存储进去的都是 字符串
  • localStorage的存取
    有两种方法:
    1.常用写法
    localStorage.a='aaa';//存
    localStorage.a;//取

2.标准方法

存:(标准模式)
loaclStorage.setItem('abc','wel');
取:(标准模式)
loaclStorage.getItem('abc');
删:移除某项
localStorage.removeItem('abc');
全部清空(基本不用)
localStorage.clear();

***可以直接用loaclStorage.key = value,因为localStorage是一个对象
注意:以上是localStorage的基本用法,他的跨页面通信的用法在这:http://www.jianshu.com/p/22d9f1574688

Cookie和localStorage的区别

localStorage与cookie相似,可以替代cookie

                cookie                 localStorage
大小:         4k                          5M           之内安全    
兼容性:       ie6+                        ie7+    
是否走网络:    是                            否    
过期时间:    expires会话结束(session) 
一直存在,除非手动清除                
必须浏览器关闭            
 loaclStorage.removeItem('abc');     
  loaclStorage.clear();//一般不要用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • cookie也叫HTTP Cookie,最初是客户端与服务器端进行会话使用的。比如,会员登录,下次回访网站时无须登...
    lovelydong阅读 2,890评论 0 1
  • 一、DOM 什么是DOM?Document Object Model(文档对象模型)。DOM是针对HTML和XML...
    空谷悠阅读 4,505评论 0 2
  • 大家好,我是IT修真院深圳分院第01期学员,一枚正直纯洁善良的web程序员。 今天给大家分享一下,修真院官网JS(...
    老菜菜阅读 3,811评论 1 2
  • localStorage属于HTML5的新功能之一,它的作用和之前学的cookie相像,都可以存东西,那么他们之间...
    itdingrui阅读 7,645评论 1 2
  • 生活中所有的体悟和经历都是如人饮水冷暖自知的,每个人每一天都经历着自己的经历,可能苦涩,亦或者甜蜜,但或许这些苦涩...
    半城烟沙小确幸阅读 2,454评论 0 3