HTML5 Web Storage
通过Web Storage,Web应用程序可以在用户的浏览器中本地存储数据。在HTML5之前,应用程序数据必须存储在cookie中,包含在每个服务器请求中。Web Storage更安全,可以在本地存储大量数据,而不会影响网站性能。与cookie不同,存储限制要大得多(至少5MB),信息永远不会传输到服务器。Web存储是按来源(每个域和协议)。来自一个来源的所有页面都可以存储和访问相同的数据。
HTML Web Storage提供了两个用于在客户端上存储数据的对象:
- window.localStorage - 存储没有过期日期的数据
- window.sessionStorage - 存储一个会话的数据(关闭浏览器选项卡时数据丢失)
在使用Web存储之前,请检查对localStorage和sessionStorage的浏览器支持:
if (typeof(Storage) !== "undefined") {
// 编写localStorage/sessionStorage的代码。
} else {
// 对不起不支持 Web Storage support。
}
localStorage对象
localStorage对象存储没有过期日期的数据。当浏览器关闭时,数据不会被删除,并且将在第二天,一周或一年中可用。
示例:
// 存储值
localStorage.setItem("username", "张三");
// 读取值 显示在id为result的HTML元素中
document.getElementById("result").innerHTML = localStorage.getItem("username");
sessionStorage对象
sessionStorage对象跟localStorage对象的功能一样,但 它仅存储一个session数据。当用户关闭特定浏览器选项卡时,将删除数据。以下示例计算用户在当前会话中单击按钮的次数:
if (sessionStorage.clickcount) {
sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1;
} else {
sessionStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "您已经在会话中点击这个按钮 " +
sessionStorage.clickcount + "次";