Skip to content

Web Storage

sessionStorage

为每一个给定的源(origin)维持一个独立的存储区域,该存储区域在页面会话期间可用(即只要浏览器处于打开状态,包括页面重新加载和恢复)。

  • 仅为会话存储数据,这意味着数据将一直存储到浏览器(或选项卡)关闭。
  • 数据永远不会被传输到服务器。
  • 存储限额大于 cookie(最大 5MB)。

localStorage

做同样的事情,但即使浏览器关闭并重新打开也仍然存在。

  • 存储的数据没有过期日期,只能通过 JavaScript、清除浏览器缓存或本地存储的数据来清除。
  • 存储限额是两者之间的最大值。

TIP

若用户禁用第三方 cookie,那么将不允许来自第三方 IFrame 对 Web Storage 的访问。

实例方法

Storage.key(index)

该方法接受一个数值 n 作为参数,并返回存储中的第 n 个键名。

Storage.getItem(keyName)

该方法接受一个键名作为参数,返回键名对应的值。

Storage.setItem(keyName, keyValue)

该方法接受一个键名和值作为参数,将会把键值对添加到存储中,如果键名存在,则更新其对应的值。

Storage.removeItem(keyName)

该方法接受一个键名作为参数,并把该键名从存储中删除。

Storage.clear()

调用该方法会清空存储中的所有键名。

示例

javascript
for (let i = 0; i < localStorage.length; i++) {
  console.log(localStorage.getItem(localStorage.key(i)));
}

localStorage.setItem("myCat", "Tom");

let cat = localStorage.getItem("myCat");

localStorage.removeItem("myCat");

localStorage.clear();
for (let i = 0; i < localStorage.length; i++) {
  console.log(localStorage.getItem(localStorage.key(i)));
}

localStorage.setItem("myCat", "Tom");

let cat = localStorage.getItem("myCat");

localStorage.removeItem("myCat");

localStorage.clear();