localStorage vs sessionStorage

作者: Calpa Liu

出版:2017-01-20

Storage

  • HTML5 的 Web Storage 包括了兩種儲存方式:localStoragesessionStorage
  • 儲存在 Storage 中的資料,以 key-value pair 的形式保存。
  • Cookie 的佔用空間非常小,大小限制于 4KB 左右,常見的用途是保存賬號登錄信息與登錄狀態。
  • 使用 Storage 物件時,可以寫localStorage代替window.localStorage

localStorage

即使用戶關閉瀏覽器,頁面數據依然存在。下一次用戶打開該頁面,便能夠使用該資料。舉個例子,當 localStorage 擁有 userdata,瀏覽器可以獲取用戶資料,瀏覽器會導航用戶到登入後的畫面。

if (localStorage.getItem('userdata')) {
  login();
} else {
  register();
}

sessionStorage

sessionStorage 與 localStorage 相似,但如果用戶關閉當前頁面,sessionStorage 中的數據就會被清空。

window.sessionStorage.setItem("username", "calpa");
window.sessionStorage.getItem("username"); // calpa

方法

儲存

儲存資料的時候,可以利用 Storage 物件內的setItem()方法。

localStorage.setItem(3, 3);
sessionStorage.setItem("username", "calpa");

獲取

獲取資料的時候,則會用到getItem()方法。

let username = localStorage.getItem("username");

如果 key 不是 string 的話,獲取資料時會出現問題。

localStorage.3 = 3; // Uncaught SyntaxError: Unexpected number

清除

清除某個資料,可以用removeItem()

window.localStorage.removeItem("username");

清除所有資料,可以用clear()

window.localStorage.clear();
window.sessionStorage.clear();

參考資料

  1. Using the Web Storage API

關於 Calpa Liu

Avatar

Calpa 是一個四天工作的系統架構師,日常幫助客戶構建一站式網站應用,手機應用,雲端架構。

2023 年 9 月,Calpa 收到來自國內外不同 Web3 團隊的邀請,參加韓國的 KBW 2023 和新加坡的 TOKEN 2049 活動。十二月份,Calpa 將參加台北區塊鏈週的 Hackathon 比賽。

Calpa 擅長運用各種前沿技術,包括 TypeScript、React.js 和 Vue.js,開發具有 Responsive Web Design 的網站。另外,他透過運用 aws-cdk 和 TypeScript 技術的融合,實現了基於雲端的「基礎即代碼」(Infrastructure as Code)部署策略,建立了多套高效且具有可伸縮性的全端架構。

同時,Calpa 積極參與各個社群,活躍於香港和台灣的開源社區,分享前沿知識。他曾在 2019 年的香港開源大會中擔任重要講者,為聽眾提供寶貴的工作經驗和深刻見解。此外,Calpa 在 GitHub 上公開分享了個人博客程式碼,已獲得超過 300 顆星星和 60 個分支。

如果您對系統架構有任何問題,或需要進一步交流,請隨時聯絡 Calpa,他非常歡迎討論。