客戶端資料儲存cookie、localStoeage、sessionStorage(小記)
阿新 • • 發佈:2019-02-12
一、資料儲存分為客戶端儲存和服務端儲存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()
- 此外,兩者存放資料大小為一般為5MB,而且它僅在客戶端(即瀏覽器)中儲存,不參與和伺服器的通訊。
- 不同瀏覽器無法共享localStorage或sessionStorage中的資訊。
- 相同瀏覽器的不同頁面間可以共享相同的 localStorage(頁面屬於相同域名和埠),但是無法共享sessionStorage的資訊。
- cookie在瀏覽器和伺服器端來回傳遞資料,而localStorage和sessionStorage不會自動把資料傳送給伺服器,僅會儲存在本地。cookie會在瀏覽器請求頭或者ajax請求頭中傳送cookie內容。