关于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));
}

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