cookie
cookie,有時也用其複數形式Cookies,指某些網站爲了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數據(通常經過加密)。定義於RFC2109和2965都已廢棄,最新取代的規範是RFC6265。
cookie的作用
服務器可以利用Cookies包含信息的任意性來篩選並經常性維護這些信息,以判斷在HTTP傳輸中的狀態。Cookies最典型的應用是判定註冊用戶是否已 經登錄網站,用戶可能會得到提示,是否在下一次進入此網站時保留用戶信息以便簡化登錄手續,這些都是Cookies的功用。另一個重要應用場合是“購物 車”之類處理。用戶可能會在一段時間內在同一家網站的不同頁面中選擇不同的商品,這些信息都會寫入Cookies,以便在最後付款時提取信息。
js設置cookie
document.cookie="popped=yes"
js獲取cookie
function get_cookie(Name) { var search = Name + "="//查詢檢索的值 var returnvalue = "";//返回值 if (document.cookie.length > 0) { sd = document.cookie.indexOf(search); if (sd!= -1) { sd += search.length; end = document.cookie.indexOf(";", sd); if (end == -1) end = document.cookie.length;
//unescape() 函數可對通過 escape() 編碼的字符串進行解碼。 returnvalue=unescape(document.cookie.substring(sd, end)) } } return returnvalue; }
//使用方式:
get_cookie("popped");
給cookie設置終止日期
例如:如果要將cookie設置爲10天后過期,可以這樣實現:
//獲取當前時間 var date=new Date(); var expiresDays=10; //將date設置爲10天以後的時間 date.setTime(date.getTime()+expiresDays*24*3600*1000); //將userId和userName兩個cookie設置爲10天后過期 document.cookie="userId=828; userName=hulk; expires="+date.toGMTString();
其中GMT_String是以GMT格式表示的時間字符串,這條語句就是將userId這個cookie設置爲GMT_String表示的過期時間,超過這個時間,cookie將消失,不可訪問。
刪除cookie
爲了刪除一個cookie,可以將其過期時間設定爲一個過去的時間,例如:
//獲取當前時間 var date=new Date(); //將date設置爲過去的時間 date.setTime(date.getTime()-10000); //將userId這個cookie刪除 document.cookie="userId=828; expires="+date.toGMTString();
下面封裝上面的方法
var cookie = { set:function(key,val,time){//設置cookie方法 var date=new Date(); //獲取當前時間 var expiresDays=time; //將date設置爲n天以後的時間 date.setTime(date.getTime()+expiresDays*24*3600*1000); //格式化爲cookie識別的時間 document.cookie=key + "=" + val +";expires="+date.toGMTString(); //設置cookie }, get:function(key){//獲取cookie方法 /*獲取cookie參數*/ var getCookie = document.cookie.replace(/[ ]/g,""); //獲取cookie,並且將獲得的cookie格式化,去掉空格字符 var arrCookie = getCookie.split(";") //將獲得的cookie以"分號"爲標識 將cookie保存到arrCookie的數組中 var tips; //聲明變量tips for(var i=0;i<arrCookie.length;i++){ //使用for循環查找cookie中的tips變量 var arr=arrCookie[i].split("="); //將單條cookie用"等號"爲標識,將單條cookie保存爲arr數組 if(key==arr[0]){ //匹配變量名稱,其中arr[0]是指的cookie名稱,如果該條變量爲tips則執行判斷語句中的賦值操作 tips=arr[1]; //將cookie的值賦給變量tips break; //終止for循環遍歷 } },
delete:function(key){ //刪除cookie方法
var date = new Date(); //獲取當前時間
date.setTime(date.getTime()-10000); //將date設置爲過去的時間
document.cookie = key + "=v; expires =" +date.toGMTString();//設置cookie
} return tips; } }
使用方式:
cookie.set("uesr","sss",24);//設置爲24天過期
alert(cookie.get("uesr"));//獲取cookie