cookie的作用是存儲(chǔ)數(shù)據(jù),當(dāng)用戶訪問(wèn)網(wǎng)站時(shí),將一些數(shù)據(jù)存儲(chǔ)在用戶電腦上.
1.不同瀏覽器cookie位置不一樣
2.同一瀏覽器不同的網(wǎng)站有不同的cookie,甚至同一網(wǎng)站也存在多個(gè)cookie. 所以首先cookie存儲(chǔ)是以域名進(jìn)行區(qū)分的,其次每一個(gè)cookie可以單獨(dú)設(shè)置名字.
通過(guò)document.cookie獲取當(dāng)前網(wǎng)站的cookie,得到的是字符串,包含當(dāng)前網(wǎng)站所有的cookie.通過(guò)";"+"空格"串聯(lián)起來(lái).
3.一個(gè)域名下的cookie數(shù)目有限,并且每個(gè)cookie存放內(nèi)容大小也有限,不同的瀏覽器對(duì)數(shù)目的限制不一樣.
4.但若想永久存放cookie也是可以的,設(shè)置一個(gè)過(guò)期時(shí)間就好了,不設(shè)置的話cookie默認(rèn)是臨時(shí)存儲(chǔ),當(dāng)瀏覽器關(guān)閉時(shí)就銷毀
5.cookie的內(nèi)容最好編碼存放,因?yàn)橄裰形淖址@種特殊字符會(huì)出現(xiàn)亂碼.encodeURI編碼,decodeURI解碼
下面舉實(shí)例:
function setCookie(key,value,t){ 設(shè)置一個(gè)實(shí)現(xiàn)長(zhǎng)期保存cookie的函數(shù)
var oDate=new Date(); 獲取當(dāng)前日期
oDate.setDate(oDate.getDate()+t); 設(shè)置日期為當(dāng)前日期+某個(gè)數(shù)字t(設(shè)定幾天后失效)
document.cookie=key+"="+value+";expire="+oDate.toGMTstring(); cookie數(shù)據(jù)采用json格式
}
上述函數(shù)實(shí)現(xiàn)setCookie(key,value,t)就輸出字符串key+"="+value+";expire="+oDate.toGMTstring(),并且在設(shè)定好的過(guò)期日期以后才失效.
function getCookie(key){ 設(shè)置獲取cookie的函數(shù)
var arr1=document.cookie.split(";"); split和數(shù)組里是一樣的用法,以";"分隔
for(var i=0;i<arr1.length;i++){
var arr2=arr1[i].split("="); 因?yàn)楂@取的時(shí)候會(huì)獲取所有cookie,所以要分隔
if(arr2[0]==key){
return decodeURI(arr2[i]); 解碼文字部分
}
}
}
下面是移除cookie的函數(shù)
function removeCookie(key){
setCookie(key," ",-1); 小技巧,設(shè)置當(dāng)前日期的-1天也就是昨天失效,自然就移除了cookie.
}