利用JavaScript創建Web Storage

作者 Calpa 日期 2017-01-20 共319字

Storage

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

localStorage

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

1
2
3
4
5
if (localStorage.getItem('userdata')) {
login();
} else {
register();
}

sessionStorage

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

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

方法

儲存

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

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

獲取

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

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

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

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

清除

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

1
window.localStorage.removeItem("username");

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

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

參考資料

  1. Using the Web Storage API