一.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));
}