HTML Web Storage API
HTML Web Storage;比 Cookie 更好。
什么是 HTML Web Storage?
借助 Web Storage,Web 应用程序可以在用户浏览器中本地存储数据。
在 HTML5 之前,应用程序数据必须存储在 Cookie 中,并包含在每个服务器请求中。Web Storage 更安全,并且可以在本地存储大量数据,而不会影响网站性能。
与 Cookie 不同,存储限制要大得多(至少 5MB),并且信息永远不会传输到服务器。
Web Storage 是按源(每个域和协议)的。来自一个源的所有页面都可以存储和访问相同的数据。
浏览器支持
表中的数字指定了完全支持 Web Storage 的第一个浏览器版本。
API | |||||
---|---|---|---|---|---|
Web Storage | 4.0 | 8.0 | 3.5 | 4.0 | 11.5 |
HTML Web Storage 对象
HTML Web Storage 提供了两个用于在客户端存储数据的对象:
window.localStorage
- 存储没有过期日期的数据window.sessionStorage
- 存储一个会话的数据(数据在浏览器选项卡关闭时丢失)
在使用 Web Storage 之前,请检查浏览器对 localStorage 和 sessionStorage 的支持情况:
if (typeof(Storage) !== "undefined") {
// localStorage/sessionStorage 的代码。
} else {
// 抱歉!不支持 Web Storage。
}
localStorage 对象
localStorage 对象存储没有过期日期的数据。当浏览器关闭时,数据不会被删除,并且在第二天、下周或下一年仍然可用。
示例
// 存储
localStorage.setItem("lastname", "Smith");
// 检索
document.getElementById("result").innerHTML = localStorage.getItem("lastname");
自己动手试一试 »
示例说明
- 创建一个名称为 "lastname"、值为 "Smith" 的 localStorage 名称/值对。
- 检索 "lastname" 的值,并将其插入到 id="result" 的元素中。
上面的例子也可以这样写:
// 存储
localStorage.lastname = "Smith";
// 检索
document.getElementById("result").innerHTML = localStorage.lastname;
移除 "lastname" localStorage 项的语法如下:
localStorage.removeItem("lastname");
注意: 名称/值对始终以字符串形式存储。需要时请记得将它们转换为其他格式!
以下示例计算用户点击按钮的次数。在此代码中,值字符串被转换为数字,以便能够增加计数器:
示例
if (localStorage.clickcount) {
localStorage.clickcount = Number(localStorage.clickcount) + 1;
} else {
localStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "您已点击按钮 " +
localStorage.clickcount + " 次。";
自己动手试一试 »
sessionStorage 对象
sessionStorage
对象与 localStorage 对象相同,除了它只为一个会话存储数据。当用户关闭特定的浏览器选项卡时,数据将被删除。
以下示例计算用户在当前会话中点击按钮的次数:
示例
if (sessionStorage.clickcount) {
sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1;
} else {
sessionStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "您已点击按钮 " +
sessionStorage.clickcount + " 次。";
自己动手试一试 »