當我們談論像資料儲存這樣的話題時,我們立刻會想到這三個概念。但問題是,我們經常在不知不覺中使用它們。
我們習慣將令牌儲存在 sessionStorage 中,但並非所有人都能回答出確切的原因。其他概念也遵循同樣的情況。所有這些問題早已由我們使用的模組決定,這很令人難過,因為即使你完全不懂網站,你也需要了解這一點。
在本文中,我嘗試為您準備終極指南,以便您不會對其用途和用途產生任何誤解。
好吧,讓我們開始吧!
在我們開始討論 LocalStorage 之前,值得先簡單介紹一下什麼是儲存。
簡而言之,儲存是瀏覽器儲存資訊的專用位置。在 JavaScript 中,此類儲存表示為物件,可以透過window
物件的保留名稱屬性或專用變數來存取。
現在,我們回過頭來看看。我們可以透過localStorage
物件存取 LocalStorage 儲存空間。現在,重要的是,即使我們關閉標籤頁或瀏覽器本身,資料也會儲存在這個物件中。這適用於處理大量資料。
// Save a value
localStorage.setItem("theme", "dark");
// Retrieve a value
const theme = localStorage.getItem("theme");
console.log(theme); // "dark"
// Remove a value
localStorage.removeItem("theme");
// Clear all storage
localStorage.clear();
它是儲存長期資料(例如設定、快取資料等)的好地方。
SessionStorage 與 LocalStorage 類似;差異在於, localStorage
僅按來源分區,而sessionStorage
同時按來源和瀏覽器標籤頁(頂級瀏覽上下文)分區。 sessionStorage sessionStorage
的資料僅在頁面會話期間保留。適用於大量資料。
也就是說,如果您關閉瀏覽器中的某個標籤,則此儲存體中的所有資料都會被清除。
// Save a value
sessionStorage.setItem("authToken", "123456");
// Retrieve a value
const token = sessionStorage.getItem("authToken");
console.log(token); // "123456"
const templateFn = hmpl.compile(
`<div>
{{#request src="/api/my-component.html"}}
{{#indicator trigger="pending"}}
<p>Loading...</p>
{{/indicator}}
{{/request}}
</div>`
);
const content = templateFn(() => ({
body: JSON.stringify({ token })
})).response;
// Remove a value
sessionStorage.removeItem("authToken");
// Clear all storage
sessionStorage.clear();
適用於臨時令牌,以及您在網站存取期間所需的資料,即會話資料。
如今,最受歡迎的儲存方式,也是現代 Web 應用程式使用者最常談論的,或許就是 Cookie。 Cookie 的宣傳語層出不窮,但許多人卻忽略了一點:「它們有什麼用?」 事實上,Cookie 是一種小型儲存(大小以日後為準),用於儲存臨時資料(即一段時間後會被刪除的資料)。它適用於少量資料。
// Set a cookie
document.cookie = "username=John; path=/; max-age=3600"; // expires in 1 hour
// Read cookies
console.log(document.cookie); // "username=John"
// Update a cookie
document.cookie = "username=Mike; path=/; max-age=3600";
// Delete a cookie
document.cookie = "username=; path=/; max-age=0";
這些資料通常用於網站上的各種追蹤。例如,有多少人點擊了,用戶如何移動遊標等等。此外,在進行身份驗證時,也常會用到這些資料。
在本文中,我們研究了 LocalStorage、SessionStorage 和 Cookies,它們在瀏覽器中執行不同的資料儲存任務。選擇正確的儲存方法取決於資料的生命週期、容量限制以及從伺服器存取資料的需求。正確的選擇將幫助您提升效能、安全性和使用者體驗。
非常感謝您閱讀這篇文章❤️!
PS 另外,別忘了幫我並給 HMPL 加星號!
{% cta https://github.com/hmpl-language/hmpl %} 🌱 星標 HMPL {% endcta %}
原文出處:https://dev.to/hmpljs/localstorage-vs-sessionstorage-vs-cookies-a-complete-guide-3m6d