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();