前端除了sessionStorage、localStorage以外,還有一種本地存儲方式,即cookie。前端
注意,要使用cookie,頁面必須在服務器中運行,直接雙擊打開頁面沒法使用cookie。服務器
在進行微信公衆號頁面開發時,因爲localStorage退出微信沒法自動清除數據,而sessionStorage每次關閉頁面就會清除數據。微信
既想要退出微信能夠清除數據,而關閉頁面又仍有留有登陸信息時,咱們能夠選擇把token存儲在cookie中。cookie
cookie相關代碼以下所示:session
//設置自定義過時時間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(); } }
其中的要點爲:函數
1.cookie存在document.cookie中。編碼
2.刪除cookie則設置cookie的過時時間爲當前時間-1。spa
3.設置cookie時須要對value進行編碼,即便用escape函數,取出時須要進行解碼,即便用unescape函數。code
注:escape() 函數可對字符串進行編碼,這樣就能夠在全部的計算機上讀取該字符串。blog