cookie会话技术

cookie会话跟踪技术:
 1.cookie是有大小限制 4KB
2.域的限制,子级能访问父级的cookie,父级不能访问子级的cookie,
3.会有过期时间,过期时间之前一直有效,即使窗口或者浏览器关闭,在所有同源窗口也都是可以共享的。
4.只能存储字符串。
 
cookie会在浏览器和服务器之间来回传递。
 
cookie 的设置:
document.cookie = "name=张三;path=/;expires=过期时间"
      cookie里可以存储值,可以设置路径,"/"写的是根路径,写根路径时,当前文件夹下所有文件都能访问到这个cookie值,不设置路径,只能当前文件能访问这个cookie值,当前文件夹下的其他文件访问不到的。然后写过期时间,如果不写过期时间,关闭页面,cookie就消失。
 
假如过期时间设置一个小时以后:
var d = new Date();  //获取当前时间
d.setHours(d.getHours()+1)  //设置过期时间,也就是当前时间加1小时
document.cookie = "name=张三;path=/;expires="+d
 
    特点:
         1.信息只能存储字在符串中
         2. 时间限制
         3.域的限制
 
将设置cookie做一个封装:
function setCookie(key,val,expires){
  var d = new Date();
  d.setDate(d.getDate()+expires) //这个expires写几过期时间就是几天
 document.cookie = key + "=" +val+ ";path=/;expires="+d
}
setCookie("name","李四",4) 
setCookie("name","张三",7)
 
cookie 的获取 :
console.log(document.cookie)    //name=张三  获取的是一个字符串
console.log(document.cookie.split(";")[0].spit("=")[1]); //这样获取的就是val值
 
将获取cookie做一个封装:
function getCookie(key){
  var cookies = document.cookie;
  var arr = cookies.split("; ") //这里分割的时候分号后要加空格
  for(var i = 0;i<arr.length;i++){
     var newArr = arr[i].split("=");
     if(newArr[0] == key){
       return newArr[1];
     }
   }
 }
console.log(getCookie("name")
 
cookie 的删除
function removeCookie(key){
   setCookie(key,"",-1); //这里把val值设置为空,其实也清掉了val值,后面又设置过期时间为 -1,也是清除作用。
}
removeCookie("name")
posted @ 2019-07-12 15:28  荷风伊夏  阅读(189)  评论(0编辑  收藏  举报