JavaScript 中的本地儲存、會話儲存和 Cookie 的區別


JavaScript 提供了三種在客戶端儲存資料的機制 - Cookie、會話儲存本地儲存。每種機制都有其優點和缺點。

本地儲存是最新的機制。它允許儲存大量資料,但資料在瀏覽器關閉後不會被刪除。本地儲存適用於儲存使用者以後需要訪問的資料,例如離線資料。

會話儲存類似於 Cookie,但資料僅儲存在當前會話期間。這意味著當用戶關閉瀏覽器時,資料將被刪除。會話儲存適用於儲存敏感資料,例如登入憑據。

Cookie是最古老且最廣為人知的機制。它們易於使用並且得到瀏覽器的良好支援。但是,它們的資料限制為 4KB,通常用於儲存不敏感的資料,例如使用者偏好設定。

在本教程中,我們將詳細瞭解每種機制。

本地儲存

如今,大多數 Web 應用程式都需要某種型別的使用者輸入,無論是使用者名稱、送貨地址,還是僅僅是偏好設定。然後,此輸入通常傳送到某個伺服器進行處理和儲存。但是,如果您的應用程式需要在使用者的計算機上本地儲存資料怎麼辦?這就是本地儲存的用武之地。

本地儲存是一種 Web 儲存型別,允許 JavaScript 直接在瀏覽器中儲存和訪問資料。這對於儲存即使使用者關閉瀏覽器也希望保留的資料(例如偏好設定或設定)特別有用。

本地儲存中的資料以鍵值對的形式儲存。鍵就像資料的名稱,值就像實際資料本身。您可以將其視為 JavaScript 中的變數。要將資料儲存在本地儲存中,首先需要建立一個鍵。然後,您可以在該鍵下儲存任何所需的資料。

要建立鍵,請使用setItem()方法。此方法接受兩個引數,第一個是鍵,第二個是要儲存的值。

localStorage.setItem('key', 'value');

現在您有了鍵,就可以在該鍵下儲存任何所需的資料。您儲存的資料可以是 JavaScript 支援的任何資料型別,包括字串、數字、物件和陣列。

要儲存資料,請再次使用setItem()方法。這次,將鍵作為第一個引數傳遞,將要儲存的資料作為第二個引數傳遞。

localStorage.setItem('key', 'value');

要從本地儲存中檢索資料,請使用getItem()方法。此方法將鍵作為引數,並返回儲存在該鍵下的資料。

localStorage.getItem('key');

如果要從本地儲存中刪除專案,請使用removeItem()方法。此方法將鍵作為引數,並刪除儲存在該鍵下的資料。

localStorage.removeItem('key');

會話儲存

會話儲存 是一種 Web 儲存型別,允許 Web 應用程式在使用者的瀏覽器中本地儲存資料。與 Cookie 不同,儲存在會話儲存中的資料特定於建立它的站點,並且資料不會與其他站點共享。

會話儲存是 HTML5 中引入的一項新功能,允許您在使用者的瀏覽器中本地儲存資料。與 Cookie 不同,儲存在會話儲存中的資料特定於建立它的站點,並且資料不會與其他站點共享。

會話儲存是在應用程式客戶端儲存資料的一種方式。它類似於本地儲存,但有一些關鍵區別 -

  • 會話儲存資料僅對建立它的站點可用。

  • 會話儲存資料不會與其他站點共享。

  • 會話儲存資料不是永久性的,這意味著它僅在使用者在站點上的會話期間可用。

  • 會話儲存資料特定於建立它的瀏覽器選項卡。

會話儲存是透過減少客戶端和伺服器之間需要傳輸的資料量來提高 Web 應用程式效能的好方法。它還可以用於更安全地儲存資料,因為資料不會儲存在 Cookie 中,Cookie 可以被第三方站點訪問。

要在您的 Web 應用程式中使用會話儲存,您需要使用sessionStorage物件。此物件提供對當前會話儲存的訪問。

sessionStorage 物件有兩個方法

setItem() - 此方法在會話儲存中設定鍵值對。

sessionStorage.setItem("name", "tutorialsPoint");

getItem() - 此方法從會話儲存中檢索鍵的值。

var name = sessionStorage.getItem("name");

sessionStorage 物件還有一些其他屬性 -

  • length - 此屬性返回會話儲存中鍵值對的數量。

  • key() - 此方法接受索引作為引數,並返回會話儲存中該索引處的鍵

會話儲存是提高 Web 應用程式效能和更安全地儲存資料的好方法。

Cookie

Cookie 是儲存在使用者計算機上的少量資料。Cookie 用於儲存有關使用者的資訊,例如他們的姓名、密碼和偏好設定。

Cookie 是使用document.cookie屬性建立的。此屬性用於設定、獲取和刪除 Cookie。

設定 Cookie

Cookie 是使用setItem()方法設定的。此方法接受兩個引數,Cookie 的名稱和 Cookie 的值。

Cookie 的名稱用於識別 Cookie,值是要儲存在 Cookie 中的資訊。

以下程式碼設定了一個名為“name”且值為“tutorialsPoint”的 Cookie。

document.cookie = "name=tutorialsPoint";

讀取 Cookie

Cookie 是使用getItem()方法讀取的。此方法將 Cookie 的名稱作為引數,並返回 Cookie 的值。

如果 Cookie 不存在,getItem()方法將返回 null。

以下程式碼讀取“name”Cookie 並將值儲存在“user”變數中。

var user = document.cookie.getItem("name");

Cookie 相對於本地儲存和會話儲存的一個優點是,可以將其設定為在特定時間過期,這使得它們成為儲存不應長期保留的資料(例如會話 ID)的良好選擇。

本地儲存、會話儲存和 Cookie 的區別

下表重點介紹了本地儲存、會話儲存和 Cookie 之間的主要區別 -

本地儲存
會話儲存
Cookie
它允許儲存10MB資料。它允許儲存5MB資料。儲存容量限制為 4KB 資料。
儲存的資料在瀏覽器關閉後不會被刪除。資料僅儲存在會話期間,並在瀏覽器關閉時被刪除。資料可以設定為在特定時間過期。
本地儲存適用於儲存使用者以後需要訪問的資料,例如離線資料。會話儲存是提高 Web 應用程式效能的好方法。Cookie 是儲存不應長期保留的資料(例如會話 ID)的良好選擇。
這對於儲存即使使用者關閉瀏覽器也希望保留的資料(例如偏好設定或設定)特別有用。會話儲存適用於儲存敏感資料,例如登入憑據。Cookie 通常用於儲存不敏感的資料,例如使用者偏好設定
本地儲存是HTML5中引入的一項新功能會話儲存是HTML5中引入的一項新功能Cookie 是最古老的(HTML4)且最廣為人知的機制。
資料不會隨客戶端到伺服器的請求一起傳送。資料不會隨客戶端到伺服器的請求一起傳送資料會隨客戶端到伺服器的請求一起傳送
資料儲存在瀏覽器和系統上。資料僅儲存在瀏覽器上。資料僅儲存在瀏覽器上。

結論

在本教程中,我們討論了本地儲存、會話儲存和 Cookie 之間差異。我們已經瞭解了從這些儲存中儲存和檢索資料的方法。本地儲存是最新的機制。它允許儲存大量資料(10MB),但資料在瀏覽器關閉後不會被刪除。會話儲存類似於 Cookie,但資料僅儲存在當前會話期間。這意味著當用戶關閉瀏覽器時,資料將被刪除。Cookie是最古老且最廣為人知的機制。它們易於使用並且得到瀏覽器的良好支援。但是,它們的資料限制為 4KB,通常用於儲存不敏感的資料,例如使用者偏好設定。

更新於: 2023年11月1日

41K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告