• cookie


    • cookie的诞生
    • /*
      http协议是无状态的
      但是我们有记录状态的需求,所以为了解决这个问题,就诞生了cookie

      cookie的作用:维护客户端与服务器之间的状态
      cookie的缺点:1、有安全隐患;2、cookie存储的数据量有限(4k)

      在网络请求的过程中所有的cookie都是带着的,(以请求头的方式发送给服务器)

      cookie是与域名绑定的,不能从一个域名下去获取另外一个域名下面的cookie
      在父级路径设置cookie,在子路径中是可以访问的,但是反过来不行*/

    • 操作
    • 原生js如何操作cookie?
      获取cookie的方式:document.cookie 这种方式获取的是所有的cookie
      cookie的存储格式:cookie由键值对组成(key=value)多个cookie之间使用分号和空格隔开
      (username=lisi; age=12)
      设置cookie的方式:document.cookie='username=lisi'

    • // 设置会话cookie(关闭浏览器就消失了)
      // $.cookie('name', 'value');
      // $.cookie('name', 'value',{
      // expires : 7,
      // path : '/'
      // });
      // 设置cookie
      // $.cookie('age', '12');
      // 获取单个cookie
      // console.log($.cookie('age'));
      // 获取所有cookie(格式是对象形式)
      // console.log($.cookie().age);
      // ------------------------------------
      // 删除cookie
      // $.removeCookie('age');

    • cookie的分类:
      1、会话cookie,这种cookie只存储在内存,不会存储到文件中,浏览器关闭之后就会消失
      2、持久cookie,这种cookie会存储在文件中,浏览器关闭之后不会消失

      */
      document.cookie = 'username=lisi';
      document.cookie = 'age=12';

      var date = new Date();
      // 7天以后
      date.setDate(date.getDate() + 7);

      // document.cookie = 'username=lisi; expires=' + date.toGMTString() + '; path=/';
      // document.cookie = 'age=12; expires=' + date.toGMTString();

      // console.log(document.cookie);
      // var str = document.cookie;
      // console.log(typeof str);

    1. 原生js实现获取指定的cookie值

    document.cookie='username=xiaobai';
    document.cookie='age=18';

          

    var date=new Date();
    date.setDate(date.getDate()+7);//当前时间的7天后

    document.cookie="username=xiaobai; expires="+date.toGMTString()+"; path=/";
    document.cookie="age=12; expires="+date.toGMTString()+"; path=/";
    //实现一个方法,获取指定的cookie值
    function getcookie(key){
    var cookies=document.cookie;//"username=xiaobai; age=12"
    var ck=cookies.split("; ");//把字符串转成数组
    console.log(ck)//["username=xiaobai", "age=12"]
    if(ck){
    for(var i=0;i<ck.length;i++){
    var kv=ck[i].split("=");//把数组里的每一个元素取出来=去掉变成有两个元素的每一个数组;
    //console.log(kv)//["username", "xiaobai"] ["age", "12"]
    if(kv[0]==key){
    return kv[1];
    }
    }
    }
    };
    console.log(getcookie("age"));

    //实现一个方法,设置cookie的值
    function setcookie(key,value,param){
    document.cookie=key+"="+value+"; expires"+"="+param.expires+"; path"+"="+param.path;
    }
    setcookie("sex","gril",{
    expires:date.toGMTString(),
    path:"/"
    })

    努力到无能为力,拼搏到感动自己。
  • 相关阅读:
    Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
    发送广播重新挂载SD卡,使图库可以及时显示自己保存的图片(无需手机重启)
    Android学习记录(10)—Android之图片颜色处理
    Android学习记录(9)—Android之Matrix的用法
    撕美女衣服应用的原理及做法
    以最省内存的方式把大图片加载到内存及获取Exif信息和获取屏幕高度和宽度的新方法
    通过广播关闭应用程序(每个Activity)和连续点击两次返回键关闭应用程序
    Android有效解决加载大图片时内存溢出的问题
    有关ViewFlipper的使用及设置动画效果的讲解
    Android学习记录(8)—Activity的四种加载模式及有关Activity横竖屏切换的问题
  • 原文地址:https://www.cnblogs.com/woniubushinide/p/6792003.html
Copyright © 2020-2023  润新知