1. 程式人生 > >客戶端資料儲存cookie、localStoeage、sessionStorage(小記)

客戶端資料儲存cookie、localStoeage、sessionStorage(小記)

一、資料儲存分為客戶端儲存和服務端儲存1、而對於客戶端儲存,在html5以前只能通過cookie來實現;html 5以後增加了web儲存(實際儲存本地)的功能,(1)對於web儲存有兩個標準:a、File API 標準: 支援該標準的瀏覽器能夠計算機硬碟的其他檔案中讀取資料b、IndexDB 標準: 支援該標準的瀏覽器內含有一個完整的,微型的資料庫引擎(2)分類:a、本地儲存(localStorage):長期儲存網站資料,站內任何頁面都可以訪問該資料設定資料:localStorage.setItem(鍵",儲存的資料);讀取資料:localStorage.getItem(鍵");刪除資料:localStorage.removeItem(鍵");清除網站在本地儲存的資料:localStorage.clear();
b、會話資料(sessionStorage):臨時儲存儲存針對一個視窗的資料,視窗關閉之後就會被瀏覽器刪除設定資料:sessionStorage.setItem(鍵",儲存的資料);讀取資料:sessionStorage.getItem(鍵");刪除資料:sessionStorage.removeItem(鍵");清除網站在本地儲存的會話資料:sessionStorage.clear();注意:
  • 沒有web伺服器則不能使用web儲存:否則會報錯,這是不同瀏覽器對web儲存的支援程度不同造成的。
  • 另外,設定資料時要保證鍵名的唯一性,否則很容易發生命名衝突;
  • 這兩者在儲存資料時,所有資料都會被儲存為文字字串,對於讀取如數值或日期等資料時,需要手動轉換資料型別;對於物件,可以通過JSON.stringify()
    將物件連同其資料儲存為文字形式,而通過JSON.parse()把文字轉換為物件
  • 此外,兩者存放資料大小為一般為5MB,而且它僅在客戶端(即瀏覽器)中儲存,不參與和伺服器的通訊。
c、cookie :生命期為只在設定的cookie過期時間之前一直有效,即使視窗或瀏覽器關閉。三者共同點:都儲存在客戶端,而且同源(3)比較:a、cookie:優點:方便,與伺服器端通訊缺點:必須處理過期資料; 存放資料大小為4K左右 ,有個數限制(各瀏覽器不同),一般不能超過20個;每次都會攜帶在HTTP頭中,如果使用cookie儲存過多資料會帶來效能問題;Cookie需要程式設計師自己封裝,源生的Cookie介面不友好;b、localStorage:用於儲存訪客將來還能看到的資料c、sessionStorage: 儲存那些從一個頁面傳遞給下一個頁面的資料 (4) 關係:
  • 不同瀏覽器無法共享localStorage或sessionStorage中的資訊。
  • 相同瀏覽器的不同頁面間可以共享相同的 localStorage(頁面屬於相同域名和埠),但是無法共享sessionStorage的資訊。
  • cookie在瀏覽器和伺服器端來回傳遞資料,而localStorage和sessionStorage不會自動把資料傳送給伺服器,僅會儲存在本地。cookie會在瀏覽器請求頭或者ajax請求頭中傳送cookie內容。