JS基礎——Cookie與儲存

來源:互聯網
上載者:User

標籤:web前端   javascript   cookie   

一、Cookie是什麼
Cookie是一種用戶端(瀏覽器)把使用者資訊以檔案形式儲存到本地硬碟的技術,說白了就是一種瀏覽器技術

二、Cookie的作用
Cookie的作用很單一,就是儲存客戶資料。(儲存資料的檔案叫Cookie檔案)

三、Cookie與變數的區別
變數:資料是儲存到記憶體中的,是一種暫時儲存(一關瀏覽器就沒了)
Cookie:資料是儲存到Cookie檔案中的(硬碟),是一種長期儲存(即使關了瀏覽器還存在)

四、Cookie的注意事項
1、不同瀏覽器存放Cookie的位置不同,也是不能通用的
2、Cookie檔案的儲存以網域名稱形式進行區分的
3、Cookie的資料可以設定名字(為了儲存大量資料和方便操作這些資料)
4、一個網域名稱下存放Cookie的數量是有限的,而不同瀏覽器存放的個數不同
5、每個cookie存放的內容大小也是有限的,而不同瀏覽器存放內容大小不同

五、從Cookie中擷取資料

文法格式:

document.cookie  //name=leo; age=32

我們通過document.cookie來擷取當前網域名稱下的cookie時候,得到的是一個字串類型的值,它包含了當前網域名稱下的所有cookie。所有cookie通過一個分號+空格串連起來

六、向Cookie中寫入資料
文法格式:

document.cookie = 'username=leo';document.cookie = 'age=17';

七、Cookie長期儲存資料
如果Cookie要長時間儲存資料,需要在寫入Cookie時同時給它設定一個到期時間
文法格式:document.cookie = ‘username=leo;expires=‘ + 時間;
注意:Cookie檔案預設是臨時儲存的,當瀏覽器關閉時自動銷毀。

var oDate = new Date();oDate.setDate(oDate.getDate() + 5);document.cookie = 'username=leo;expires=' +oDate;

八、IE相容問題
上面這種Cookie長期儲存資料,在ie中有相容性問題。
原因:oDate是object類型,而cookie中要求oDate必須是字串
解決:把oDate轉化成string類型

var oDate = new Date();oDate.setDate(oDate.getDate() + 5);document.cookie = 'username=leo;expires=' +oDate.toGMTString();

九、儲存特殊字元問題
問題:在Cookie儲存特殊字元的時候(例如:中文、逸出字元等),儲存不了特殊字元
解決:內容最好編碼存放(encodeURI編碼,decodeURI解碼)

var oDate = new Date();oDate.setDate(oDate.getDate() + 5);document.cookie = 'username='+encodeURI('你好嗎')+';expires=' +oDate.toGMTString();alert(decodeURI(document.cookie));

十、封裝讀取單個Cookie值的方法
由於document.cookie擷取的是該網站下的所有cookie值,為了能夠擷取所需的那個值,我們必須自己封裝函數。

//讀取Cookie的方法function getCookie(key){        var arr1 = document.cookie.split('; ');        for(var i=0;i<arr1.length;i++){                var arr2 = arr1[i].split('=');                if(arr2[0] == key){                        return decodeURI(arr2[1]);                }        }}

十一、封裝寫入Cookie的方法

function setCookie(key,value,t){        var oDate = new Date();        oDate.setDate(oDate.getDate() + t);        document.cookie = key + '=' + encodeURI(value) + ';expire=' + oDate.toGMTString();}


JS基礎——Cookie與儲存

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.