zoukankan      html  css  js  c++  java
  • cookie

    cookie基础知识

    window.onload = function (ev) {
        /*
        cookie: 会话跟踪技术 客户端
        session:  会话跟踪技术  服务端
    
        cookie作用:
        将网页中的数据保存到浏览器中
    
        cookie生命周期:
        默认情况下生命周期是一次会话(浏览器被关闭)
        如果通过expires=设置了过期时间, 并且过期时间没有过期, 那么下次打开浏览器还是存在
        如果通过expires=设置了过期时间, 并且过期时间已经过期了,那么会立即删除保存的数据
    
        cookie注意点:
        cookie默认不会保存任何的数据
        cookie不能一次性保存多条数据, 要想保存多条数据,只能一条一条的设置
        cookie有大小和个数的限制
        个数限制: 20~50
        大小限制: 4KB左右
    
        cookie作用范围:
        同一个浏览器的同一个路径下访问
        如果在同一个浏览器中, 默认情况下下一级路径就可以访问
        如果在同一个浏览器中, 想让上一级目录也能访问保存的cookie, 那么需要添加一个path属性才可以;
        document.cookie = "name=zs;path=/;";
    
        例如:
        保存到了www.it666.com/jQuery/Ajax/路径下,
        我们想在 www.it666.com/jQuery/Ajax/13-weibo/,
        和 www.it666.com/jQuery/ 路径下也能访问
    
        例如:
        我们在www.it666.com下面保存了一个cookie,
        那么我们在edu.it666.com中是无法访问的
        如果想在edu.it666.com中也能访问, 那么我们需要再添加一个domain属性才可以;
        document.cookie = "name=zs;path=/;domain=it666.com;";
        */
        // alert(document.cookie);
        // var date = new Date();
        // date.setDate(date.getDate() - 1);
        // document.cookie = "age=33;expires="+date.toGMTString()+";";
        // alert(document.cookie);
    
        // document.cookie = "name=lnj;";
        // document.cookie = "age=33;";
        // alert(document.cookie);
        // document.cookie = "name=lnj;age=33;gender=male;";
    
        document.cookie = "name=zs;path=/;domain=127.0.0.1;";
    }

    cookie封装

    window.onload = function (ev) {
        // document.cookie = "age=88;";
    
        // addCookie("gender", "male");
        // addCookie("score", "998", 1, "/", "127.0.0.1");
        function addCookie(key, value, day, path, domain) {
            // 1.处理默认保存的路径
            // if(!path){
            //     var index = window.location.pathname.lastIndexOf("/")
            //     var currentPath = window.location.pathname.slice(0, index);
            //     path = currentPath;
            // }
            var index = window.location.pathname.lastIndexOf("/")
            var currentPath = window.location.pathname.slice(0, index);
            path = path || currentPath;
            // 2.处理默认保存的domain
            domain = domain || document.domain;
            // 3.处理默认的过期时间
            if(!day){
                document.cookie = key+"="+value+";path="+path+";domain="+domain+";";
            }else{
                var date = new Date();
                date.setDate(date.getDate() + day);
                document.cookie = key+"="+value+";expires="+date.toGMTString()+";path="+path+";domain="+domain+";";
            }
        }
    
        function getCookie(key) {
            // console.log(document.cookie);
            var res = document.cookie.split(";");
            // console.log(res);
            for(var i = 0; i < res.length; i++){
                // console.log(res[i]);
                var temp = res[i].split("=");
                // console.log(temp);
                if(temp[0].trim() === key){
                    return temp[1];
                }
            }
        }
        console.log(getCookie("name"));
    
        // 默认情况下只能删除默认路径中保存的cookie, 如果想删除指定路径保存的cookie, 那么必须在删除的时候指定路径才可以
        function delCookie(key, path) {
            addCookie(key, getCookie(key), -1, path);
        }
        delCookie("name", "/");
    }
  • 相关阅读:
    spring事件广播
    浏览器中文乱码,组合项目中部分模块乱码
    SpringSecurity加密Salt
    Linux服务器Java输出文件中文乱码
    重定向监听端口并持久化路由配置
    Mac下文件编码转换
    Shell之内容匹配与格式输出
    [leetcode]Scramble String
    [leetcode]Decode Ways
    [leetcode]Valid Palindrome
  • 原文地址:https://www.cnblogs.com/zzxuan/p/9375160.html
Copyright © 2011-2022 走看看