HTML的本地存储;比cookie更好。
HTML的本地存储是什么?
使用本地存储,Web应用程序可以在用户浏览器中本地存储数据.
在HTML5之前, 应用程序数据必须存储在cookie中, 包含在每个服务器请求中.
本地存储是更安全的,大量的数据可以存储在本地,而不会影响网站的性能.
不像cookies, 存储限制的更大(至少5MB)并且信息从来不传送到服务器.
本地存储是每个源(每个域和协议). 所有页面,从一个原点,可以存储和访问相同的数据.
浏览器支持
表中的数字指定第一个完全支持本地存储的浏览器版本.
API
Web Storage
4.0
8.0
3.5
4.0
11.5
HTML的本地存储对象
HTML 本地存储提供了两个对象为客户端存储数据:
window.localStorage - 存储没有时间限制的数据
window.sessionStorage - 存储一个会话的数据(当浏览器选项卡关闭时数据丢失)
在使用本地存储之前,检查浏览器是否支持 localStorage 和 sessionStorage:
if (typeof(Storage) !== "undefined") {
// Code for localStorage/sessionStorage.
} else {
// Sorry! No Web Storage support..
}
localStorage 对象
localStorage 对象存储没有时间限制的数据. 当浏览器关闭时,数据将不会被删除,将在第二天、一周或一年中使用.
// Store
localStorage.setItem("lastname", "Smith");
// Retrieve
document.getElementById("result").innerHTML = localStorage.getItem("lastname");
实例解析:
创建一个localStorage name/value 对 使用 name="lastname" 和 value="Smith"
检索"lastname"的值,并且使用id="result"插入它到元素里面
上面的例子也可以这样写:
// Store
localStorage.lastname = "Smith";
// Retrieve
document.getElementById("result").innerHTML = localStorage.lastname;
删除localStorage中的"lastname"项,写法如下:
localStorage.removeItem("lastname");
注意: Name/value对总是存储为字符串. 记住在需要时将它们转换为另一种格式!
下面的示例计算用户单击按钮的次数。在这个代码中,值字符串被转换为一个数字,以便能够增加计数器:
if (localStorage.clickcount) {
localStorage.clickcount = Number(localStorage.clickcount) + 1;
} else {
localStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "You have clicked the button " +
localStorage.clickcount + " time(s).";
sessionStorage 对象
sessionStorage 对象和localStorage对象等价, 除了它只存储一个会话的数据. 当用户关闭特定浏览器选项卡时,数据将被删除.
下面的示例计算当前会话中用户单击某个按钮的次数:
if (sessionStorage.clickcount) {
sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1;
} else {
sessionStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "You have clicked the button " +
sessionStorage.clickcount + " time(s) in this session.";