關於js中cookie的認識

一.cookie的概述:

1.cookie是一個存儲在客戶端的字符串屬性,可以用它對當前網頁的cookie進行讀,寫,增.刪等操作;javascript能夠用document對象的cookie屬性對cookie進行操作;

2.cookie的四個可選屬性:

a.cookie的生存期屬性:expires;默認情況下,cookie只在瀏覽器會話期存在.退出瀏覽器就丟失;可以用expires設置時間;退出瀏覽器後就不會丟失並存爲客戶端瀏覽器的cookie文件;過了時間後cookie失效,還會自動刪除cookie文件.

b.path屬性:默認情況下,在同一個目錄下文件可以調用;例如:http://photo.bokee.com/zjhh/1.html設置的cookie可以被http://photo.bokee.com/zjhh/2.html調用.但不能被http://photo.bokee.com/daxiang/目錄下的文件調用;但如把path屬性設成"/";則在http://photo.bokee.com/下的所有文件都可調用此cookie.

c.domain屬性:例如設成".bokee.com"則在.bokee.com下的所有服務器下的文件都可以調用cookie.

d.安全屬性:默認情況下爲false;用http協議不安全傳輸;true:用https等協議安全傳輸.

3.cookie的侷限性:

瀏覽器最多保存300個cookie;爲單個web服務器的最多隻能保存20個cookie;每個cookie不能超過4000個字節.

 

二.代碼演示說明:

1.用javascript設置cookie:

function setLastlastVisitCookie() {
var expdate = new Date();

//設置1年
//
expdate.setFullYear(expdate
.getFullYear() + 1);

//刪除cookie
//expdate.setTime(expdate.getTime() - 1);

//設置30分鐘
expdate.setTime(expdate.getTime() + 30 * 60 * 1000);
document.cookie = "photo_id=" + escape(document.form1.photo_id.value)
+ "; expires=" + expdate.toGMTString() + "; path=/";
}

設置相同的name("photo_id");則是修改photo_id存儲的cookie的值;

如果name("user_id")則是增加一條存儲的cookie的值;

2.用javascript獲得cookie:

//搜索滿足條件的cookie

function GetCookie(name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieval_r(j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}

//得到滿足條件的cookie值

function getCookieval_r(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章