您的位置:首页 > 其它

Cookie的使用(含cookie的封装)

2017-09-05 21:28 162 查看
看到cookie这个词,我一个想到的就是饼干,因为这个单词的意思有饼干的意思.可是这里并不是,不是道为什么命名为cookie,难道命名人喜欢吃饼干. 不扯了, 进入正题.

这里的cookie是一个本地数据,这些数据就是用来辨别用户身份的.

cookie的特点

一般限制同一域名数量为50个

总大小一般为4k(同一域名)

只能使用文本文件

读取有域名限制

时效性,最短为会话级别,就是浏览器关闭后,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);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cookie 封装