Cookie的作用以及封装的方法

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

它通过

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

将name value 存入到

Cookie的作用以及封装的方法

以上是我通过

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 时效

Cookie的作用以及封装的方法

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

Cookie的作用以及封装的方法

就可以随时观察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种的信息删除

上一篇:cpu,核,进程与线程


下一篇:【第四篇】androidEventbus源代码阅读和分析