zoukankan      html  css  js  c++  java
  • Cookie的作用以及封装的方法

    Cookie相当于本地储存(local Storage),也是一种储存信息的方式。

    它通过

    document.cookie ='name=value' //name  name值  value value值  

    将name value 存入到

    以上是我通过

    document.cookie = 'weiboMsg=98567; path=/; expires=10';

    写入到Cookie中。意思是  Name是 weiboMsg  Value是 98567 。

    然后呢,我们也可以获取Cookie,通过

    alert(document.cookie); //weiboMsg=98567
    alert(typeof document.cookie); //string

    但是我们会发现父级文件夹中无法调取子文件夹中的Cookie的值。

    还有当我们关闭当前页面再次打开时,也无法读取Cookie的值。

    在这里就会涉及到   path 路径  和  expires 时效

    也就是以上两项,你可以ctrl+shift+j再找到

    就可以随时观察Cookie的变化,以及它的默认值

    比如 expires 中的 Session  ,它的时效是当前会话,也就是这个页面打开时。

    这是我们就可以写两个方法来控制Cookie的传入与去除

    在这里我们定义两个方法,分别是:setCookie() 与 getCookie();

    代码如下

    function setCookie(name, value, iDay) {
        if(iDay) {
            var dat = new Date();
    
            dat.setDate(dat.getDate()+iDay);
            
            //name   传入的名称     value   传入的  值      path  默认路径(/)无需传入    expires  修改过期时间
            document.cookie = '' + name + '=' + value + '; path=/; expires=' + dat + '';
        } else {
            document.cookie = '' + name + '=' + value + '; path=/';
        }
    }
    function getCookie(name) {
        //因为取来的Cookie信息是string,所以我们要将其拆分
        var sValue = document.cookie.split('; ');
            //["name=value", "name1=value"];
        for(var i = 0; i < sValue.length; i++) {
    
            var arr1 = sValue[i].split('=');
            //分割为  ["name", "value"],["name1", "value"]
            console.log(arr1);
            if(arr1[0] == name) {
                return arr1[1];
            }
        }
        return '';
    }

    通过对字符串与数组的操作,获取Cookie中name的值。这里应注意以下在第一次split分割时的字符是 ;+空格

    另外,我们也可以设置删除Cookie,我将其命名为delCookie

    function delCookie(name) {
        setCookie(name, 'ssss', -10)
    }

    原理就是将时效设为负值,浏览器就会将Cookie种的信息删除

  • 相关阅读:
    31天重构学习笔记9. 提取接口
    31天重构学习笔记4. 降低方法
    31天重构学习笔记8. 使用委派代替继承
    31天重构学习笔记11. 使用策略类
    31天重构学习笔记12. 分解依赖
    MyCat:第八章:MyCAT In Action中文版
    HDU 2041 超级楼梯
    CSU 1487 未覆盖顶点数量
    HDU 1712 ACboy needs your help
    HDU 2034 人见人爱AB
  • 原文地址:https://www.cnblogs.com/UniverseWang/p/6994887.html
Copyright © 2011-2022 走看看