HTML Web Storage
-
HTML5 Web Storage
通过Web Storage,Web应用程序可以在用户的浏览器中本地存储数据。在HTML5之前,应用程序数据必须存储在cookie中,包含在每个服务器请求中。Web Storage更安全,可以在本地存储大量数据,而不会影响网站性能。与cookie不同,存储限制要大得多(至少5MB),信息永远不会传输到服务器。Web存储是按来源(每个域和协议)。来自一个来源的所有页面都可以存储和访问相同的数据。
-
浏览器支持
Internet Explorer Chrome FireFox Safari Opera 8.0(包含)以上支持 4.0(包含)以上支持 3.5(包含)以上支持 4.0(包含)以上支持 11.5(包含)以上支持 -
HTML Web Storage对象
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");
示例说明:
使用username =“张三”创建localStorage键值对
查找“username”的值并将其插入到id =“result”的元素中上面的例子也可以这样写:
// 存储值 localStorage.username = "张三"; // 查找值 document.getElementById("result").innerHTML = localStorage.username;
删除localStorage的“username”项的语法如下:
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对象的功能一样,但 它仅存储一个session数据。当用户关闭特定浏览器选项卡时,将删除数据。以下示例计算用户在当前会话中单击按钮的次数:
尝试一下if (sessionStorage.clickcount) { sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1; } else { sessionStorage.clickcount = 1; } document.getElementById("result").innerHTML = "您已经在会话中点击这个按钮 " + sessionStorage.clickcount + "次";