对cookie总结-知了汇智

对cookie总结

  在服务器的环境下,对数据的本地存储下面为一个小小的案例

let d= new Date;
d.setDate(d.getDate()+7);
document.cookie="userName=jzm;expires="+d.toGMTString();

  cookie本身就是一串字符串,格式为键值对,常用在本地身份验证,作免登陆

  cookie的读取

  cookie的读取每次都是全部获取,所以在读取的时候需要自己解析cookie代码,获得需要的代码

  cookie删除

  cookie没法直接删除,但可以设置失效时间 ,将设置的时间设置为过去

对cookie总结

 

  cookie的特殊点

  document.cookie="userName=zhang;expires="+date.toGMTString();

  这样的写法会给原键值对后面添加而不是覆盖

  添加与覆盖

  浏览器用cookie键名来区别cookie,添加不同名称的cookie会一直续在前一个cookie后,同名的cookie会被覆盖

  expires,path和domain

  expires指cookie失效时间

  path指保存的cookie可被访问的html路径

  domain表示主机指定可访问cookie的主机名。

  path:表示保存的 cookie数据在 那个路径下的html文件中可以访问默认为当前目录下的所有html及子目录下html

  path=/temp; 表示根目录下的temp路径domain=163.com;表示可被163.com域名访问expires=GMTString;失效时间的设置

  失效日期由date.toGMTString()方法获取

  中文和特殊字符处理

  escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串--把汉字变成百分号编码

  unescape()解码

  封装

 
//添加(修改)cookie
//参数:
// 键
// 值
// 有效期(以天为单位)
​
function saveCookie(key,value,daycount) {
    let d = new Date();
    d.setDate(d.getDate()+daycount);
    //escape:编码,把汉字变成百分号编码
    document.cookie = key+'='+escape(value)+';expires='+d.toGMTString();
}
//获取cookie
//参数:
//键
//返回值:键对应的值
​
function getCookie(key){
    //unescape:解码:把百分号编码变成汉字
    let str= unescape(document.cookie);
​
    let arr = str.split("; ");
​
    for(let i in arr){
        if(arr[i].startsWith(key+"=")){
            return arr[i].split("=")[1];
        }
    }
​
    return null;
}
//删除cookie
//参数:
//键
function removeCookie(key){
    saveCookie(key,'byebye',-1) 
}

 

  版权声明:本文来源于网络,由知了堂搜集整理,仅供大家学习web前端开发时参考

项目教学·项目驱动

132 2811 3191
预约免费试学
点击咨询
预约试学