1. 程式人生 > >設置cookie,刪除cookie,讀取cookie

設置cookie,刪除cookie,讀取cookie

24* ret 服務器 fun 淘寶 regexp func 小時 OS

1.首先來說下cookie的作用

我們在瀏覽器中,經常涉及到數據的交換,比如你登錄郵箱,登錄一個頁面。我們經常會在此時設置30天內記住我,或者自動登錄選項。那麽它們是怎麽記錄信息的呢,答案就是今天的主角cookie了,Cookie是由HTTP服務器設置的,保存在瀏覽器中,但HTTP協議是一種無狀態協議,在數據交換完畢後,服務器端和客戶端的鏈接就會關閉,每次交換數據都需要建立新的鏈接。

2.cookie的聲明周期會隨著瀏覽器的關閉而銷毀!

持久cookie則是設定了它的生命周期expires,此時,cookie像商品一樣,有個保質期,關閉瀏覽器之後,它不會銷毀,直到設定的過期時間。對於持久cookie,可以在同一個瀏覽器中傳遞數據,比如,你在打開一個淘寶頁面登陸後,你在點開一個商品頁面,依然是登錄狀態,即便你關閉了瀏覽器,再次開啟瀏覽器,依然會是登錄狀態。這就是因為cookie自動將數據傳送到服務器端,在反饋回來的結果。持久cookie就像是我們辦理了一張積分卡,即便離開,信息一直保留,直到時間到期,信息銷毀。

設置cookie

function setCookie(name,value,time){
     var strsec = getsec(time);
    var exp = new Date();
    exp.setTime(exp.getTime() + strsec*1);
    document.cookie = name + "="+ escape (value) + ";expires=" +         
    exp.toGMTString();
}

function getsec(str){
  var str1=str.substring(1,str.length)*1;
  var str2=str.substring(0,1);
  if (str2=="s"){
    return str1*1000;
  }else if (str2=="h"){
    return str1*60*60*1000;
  }else if (str2=="d"){
    return str1*24*60*60*1000;
  }
  
  //這是有設定過期時間的使用示例:
  //s20是代表20秒
  //h是指小時,如12小時則是:h12
  //d是天數,30天則:d30
};
 
示例: setCookie("name","hayden","s20")

刪除cookie

function delCookie(name){
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null)
    document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}

 獲取cookie

function getCookie(name){
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg)){
        return unescape(arr[2]);
    }else{
        return null;
    }
}

  

設置cookie,刪除cookie,讀取cookie