對cookie總結 cookie 在伺服器的環境下,對數據的本地存儲下麵為一個小小的案例 cookie本身就是一串字元串,格式為鍵值對,常用在本地身份驗證,作免登陸 cookie的讀取每次都是全部獲取,所以在讀取的時候需要自己解析cookie代碼,獲得需要的代碼 cookie沒法直接刪除,但可以設置 ...
cookie
cookie
在伺服器的環境下,對數據的本地存儲下麵為一個小小的案例
let d= new Date; d.setDate(d.getDate()+7); document.cookie="userName=jzm;expires="+d.toGMTString();
cookie本身就是一串字元串,格式為鍵值對,常用在本地身份驗證,作免登陸
cookie的讀取
cookie的讀取每次都是全部獲取,所以在讀取的時候需要自己解析cookie代碼,獲得需要的代碼
cookie刪除
cookie沒法直接刪除,但可以設置失效時間 ,將設置的時間設置為過去
cookie的特殊點
document.cookie="userName=zhang;expires="+date.toGMTString();
這樣的寫法會給原鍵值對後面添加而不是覆蓋
添加與覆蓋
瀏覽器用cookie鍵名來區別cookie,添加不同名稱的cookie會一直續在前一個cookie後,同名的cookie會被覆蓋
expires,path和domain
expires指cookie失效時間
path指保存的cookie可被訪問的html路徑
domain表示主機指定可訪問cookie的主機名。
path:表示保存的 cookie數據在 那個路徑下的html文件中可以訪問預設為當前目錄下的所有html及子目錄下html
path=/temp; 表示根目錄下的temp路徑
domain=163.com;表示可被163.com功能變數名稱訪問
expires=GMTString;失效時間的設置
中文和特殊字元處理
escape() 函數可對字元串進行編碼,這樣就可以在所有的電腦上讀取該字元串--把漢字變成百分號編碼
unescape()解碼
封裝
//添加(修改)cookie //參數: // 鍵 // 值 // 有效期(以天為單位) function saveCookie(key,value,daycount) { let d = new Date(); d.setDate(d.getDate()+daycount); //escape:編碼,把漢字變成百分號編碼 document.cookie = key+'='+escape(value)+';expires='+d.toGMTString(); } //獲取cookie //參數: //鍵 //返回值:鍵對應的值 function getCookie(key){ //unescape:解碼:把百分號編碼變成漢字 let str= unescape(document.cookie); let arr = str.split("; "); for(let i in arr){ if(arr[i].startsWith(key+"=")){ return arr[i].split("=")[1]; } } return null; } //刪除cookie //參數: //鍵 function removeCookie(key){ saveCookie(key,'byebye',-1) }