Cookie的使用(含cookie的封装)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34763438/article/details/77856895

看到cookie这个词,我一个想到的就是饼干,因为这个单词的意思有饼干的意思.可是这里并不是,不是道为什么命名为cookie,难道命名人喜欢吃饼干. 不扯了, 进入正题.
这里的cookie是一个本地数据,这些数据就是用来辨别用户身份的.

cookie的特点

  1. 一般限制同一域名数量为50个
  2. 总大小一般为4k(同一域名)
  3. 只能使用文本文件
  4. 读取有域名限制
  5. 时效性,最短为会话级别,就是浏览器关闭后,cookie就会clear

cookie的使用 ##

那么如何使用cookie呢
添加 : document.cookie = “key = value”,一次写入一个键值对,
读取 : document.cookie,返回的是字符串
修改 : 与添加一样
删除 : 将cookie值设为空,或将时间设为过期时间
失效时间 : expires
var oDate = new Date();
oDate.setDate(oDate.getDate() + iDay);
设置失效时间:document.cookie = “key=value;expires=”+ oDate;
设置域名:domain
设置域名:document.cookie = “key=value;domain=.baidu.com“;
注:必须在绑定域名的服务器才可以设置域名,上不同服务器之间的cookie文件不能共享。
设置路径:path
设置路径: document.cookie = “key=value;path=/“;
注:在同一路径下的网页可以共享cookie,路径不同时,不可以访问。
注:如果有中文内容,需要用encodeURIComponent(‘xxxx’)进行编码,再使用decodeURIComponent(‘xxxx’)进行解码,解决中文乱码的问题。

cookie的封装

每次使用cookie的时候代码都是这些,那么为了少写代码,我们此时就要封装cookie.
直接贴代码.

/**
 * 对cookie的封装
 * @type {{setCookie: CookieUtils.setCookie, getCookie: CookieUtils.getCookie, removeCookie: CookieUtils.removeCookie}}
 */
var CookieUtils = {
    /**
     * 添加,修改cookie,若不传day,则day默认值为1,若不传path,则path默认值为"/"
     * @param key
     * @param value
     * @param day
     * @param path
     */
    setCookie: function (key, value, day, path) {
        if (day === "" || day === null || day === undefined) {
            day = 1;
        }
        if (path === "" || path === null || path === undefined) {
            path = "/";
        }
        var date = new Date();
        date.setDate(date.getDate() + day);
        document.cookie = encodeURIComponent(key) + '=' + encodeURIComponent(value) + ';expires=' + date + ';path=' + path;
    },
    /**
     * 查询cookie
     * @param key
     * @returns {string}
     */
    getCookie: function (key) {
        var cookieStr = document.cookie;
        var cookieArr = cookieStr.split("; ");
        for (var i = 0; i < cookieArr.length; i++) {
            var temp = cookieArr[i].split("=");
            if (temp[0] === key) {
                return decodeURIComponent(temp[1]);
            }
        }
    },
    /**
     * 移除cookie
     * @param key
     * @param path
     */
    removeCookie: function (key, path) {
        CookieUtils.setCookie(key, 1, -1, path);
    }
};

猜你喜欢

转载自blog.csdn.net/qq_34763438/article/details/77856895