前端對cookie的使用


前端除了sessionStorage、localStorage之外,還有一種本地存儲方式,即cookie。

注意,要使用cookie,頁面必須在服務器中運行,直接雙擊打開頁面無法使用cookie。

在進行微信公眾號頁面開發時,由於localStorage退出微信無法自動清除數據,而sessionStorage每次關閉頁面就會清除數據。

既想要退出微信可以清除數據,而關閉頁面又仍有留有登錄信息時,我們可以選擇把token存儲在cookie中。

cookie相關代碼如下所示:

//設置自定義過期時間cookie
function setCookie(name,value,time){
    var msec = getMsec(time); //獲取毫秒
    var exp = new Date();
    exp.setTime(exp.getTime() + msec*1);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString() + ";path=/";
}
//將字符串時間轉換為毫秒,1秒=1000毫秒 function getMsec(str){ var timeNum=str.substring(0,str.length-1)*1; //時間數量 var timeStr=str.substring(str.length-1,str.length); //時間單位后綴,如h表示小時 if (timeStr=="s"){ //20s表示20秒 return timeNum*1000;} else if (timeStr=="h"){ //12h表示12小時 return timeNum*60*60*1000;} else if (timeStr=="d"){ return timeNum*24*60*60*1000;} //30d表示30天 }
//讀取cookies function getCookie(name){ var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); //正則匹配 if(arr=document.cookie.match(reg)){ return unescape(arr[2]); } else{ return null; } }
//刪除cookies 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() + ";path=/" } }

 其中的要點為:

1.cookie存在document.cookie中。

2.刪除cookie則設置cookie的過期時間為當前時間-1。

3.設置cookie時需要對value進行編碼,即使用escape函數,取出時需要進行解碼,即使用unescape函數。

注:escape() 函數可對字符串進行編碼,這樣就可以在所有的計算機上讀取該字符串。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM