浏览器cookie详解

/*cookie作用:用来(长时间存储数据)存储数据。当用户访问当前网站的时候,就可以通过cookie把一些数据存储到用户的电脑上。
* 注意:1、不同的浏览器存储cookie的位置不一样,也不能通用;
* 2、cookie存储是以域名的形式进行区分的;
* 3、cookie的数据可以设置名字;
* 4、一个域名下存放cookie的个数是有限的,不同的浏览器存放的个数也是不同的;
* 5、每个cookie存放的文件内容大小也是有限制的,不同浏览器存放的大小也是不同的;
* cookie的获取:
* 我们通过document.cookie来获取当前网站下的所有cookie;,得到的值是字符串形式;。它包含了当前网站下的所有cookie,以逗号+空格的形式串联;
*
* cookie默认的是临时存储的,当关闭整个浏览器后,cookie销毁;如果我们要cookie值长期存在,需要在设置cookie的时候需要设置一个过期的时间;
*
* 知识点:1、如何设置cookie; 2、如何获取cookie? 3、如何为cookie设置时间呢?
*
* 设置cookie: document.cookie='需要保存的名字=值;expires'+字符串格式的时间;

window.onload=function(){
var oDate=new Date()//新建一个日期对象;
// alert(oDate);当前时间
oDate.setDate(oDate.getDate()+5)//设置时间为:用户访问当前页面的后5天;起返回值是object类型的。
// oDate.toGMTString();//把object类型的日期对象值转换成字符串类型的值;
// document.cookie='username=sjw;expires'+oDate.toGMTString();
// document.cookie='age=30'
// alert(document.cookie)
/*解决存值时的一些问题:
* 上面代码“username”存储的“sjw”比较常规;;;如果存储的值含有特殊字符呢?如下
* document.cookie='username=sjw\您好;expires'+oDate.toGMTString();
所以:内容最好编码存储,encodeURI() ;读取的时候解码读取:decodeURI()
* */

// 设置cookie/读取cookie最好如下:
document.cookie='name='+encodeURI('sjw\w您好')+';expires='+oDate.toGMTString();
document.cookie="age=19";
//我们知道获取cookie时,返回的值是连载一块的;username=sjw; name=sjww您好;;;不利于单独获取;

//如何单独获取一个cookie的单独的值呢?
function getCookie(key){
var attr1=document.cookie.split('; ');//通过分号+空格把获取的cookie拆分;attr1存储cookie数组;
for(var i=0;i<attr1.length;i++){ //分别获取每一个cookie。cookie是由“名字=值”组成的;
var attr2=attr1[i].split('='); //把名字与值拆分
if(attr2[0]==key){ //如果名字=参数(想要获取的cookie),则返回其值;
return attr2[1];
}
}
}
alert(getCookie('age'));

}

posted @ 2017-02-17 11:34  往事如云烟  阅读(10651)  评论(0编辑  收藏  举报