HTML5 本地存储(Web Storage)

HTML5 提供了两种在客户端存储数据的新方法:

  • localStorage - 本地永久存储,下次打开浏览器数据依然存在
  • sessionStorage - 只存在于一个会话的数据存储,关闭浏览器数据会被清除
注意:
   1)只要清除浏览器cookie,两种存储方式的数据都会被清除
   2)对于不同的网站,数据存储于不同的区域,各网站只能访问其自身的数据
   3)浏览器之间的数据是各自独立的(比如Firefox中使用localStorage存储一组数据,在Chrome浏览器下是无法读取的)

 

1、目前大部分的浏览器已支持web storage, 当然也可以检测一下:

1     if (!window.localStorage) {
2         alert('您的浏览器不支持localStorage');
3     }
4 
5     if (!window.sessionStorage) {
6         alert('您的浏览器不支持sessionStorage');
7     }

 

2、方法

   localStorage,sessionStorage 有5个方法,使用方法一致,以下localStorage为例:

  •    localStorage.setItem([string] key, [string] value);      //本地客户端存储一个字符串类型的数据

  •    localStorage.getItem([string] key);                          //可以读取已知key值的value

  •    localStorage.removeItem([string] key);                    //删除指定key的item

  •    localStorage.clear();                                               //清除localstorage所有key/value键位对

  •    localStorage.key([number] index);                          //得到某个索引的key

 

3、示例 

    记录进入页面次数,查看 localStorage 与 sessionStorage 存储数据的变化。

    Html:    

1 <div>
2     进入页面次数(localStorage):<mark id="local"></mark> time(s)
3     <br>
4     进入页面次数(sessionStorage):<mark id="session"></mark> time(s)
5 </div>

 

    Javascript:

1 //记录localStorage进入页面次数
2 var count1 = localStorage.getItem('localCount') ? parseInt(localStorage.getItem('localCount')) + 1 : 1;
3 localStorage.setItem('localCount', count1);
4 document.getElementById('local').innerHTML = count1;
5 
6 //记录sessionStorage进入页面次数
7 var count2 = sessionStorage.getItem('sessionCount') ? parseInt(sessionStorage.getItem('sessionCount')) + 1 : 1;
8 sessionStorage.setItem('sessionCount', count2);
9 document.getElementById('session').innerHTML = count2;

 

 step1:进入chrome刷新页面10次

  

 step2:关闭chrome再重新打开

 

   说明:关闭页面后,sessionStorage 的值丢失

 

 step3:第一次进入firefox

  

   说明:浏览器之间的数据是各自独立的,firefox 读取不到 chrome的客户端存储数据 


 step4:清空chrome的cookie

   

    说明:清空cookie,localStorage 与 sessionStorage 的数据均被清除 

 

 源代码:

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title>在客户端存储数据</title>
 6 </head>
 7 <body>
 8 <div>
 9     进入页面次数(localStorage):<mark id="local"></mark> time(s)
10     <br>
11     进入页面次数(sessionStorage):<mark id="session"></mark> time(s)
12 </div>
13  <script>
14      if (window.localStorage) { //sessionStorage
15          //记录localStorage进入页面次数
16          var count1 = localStorage.getItem('localCount') ? parseInt(localStorage.getItem('localCount')) + 1 : 1;
17          localStorage.setItem('localCount', count1);
18          document.getElementById('local').innerHTML = count1;
19 
20          //记录sessionStorage进入页面次数
21          var count2 = sessionStorage.getItem('sessionCount') ? parseInt(sessionStorage.getItem('sessionCount')) + 1 : 1;
22          sessionStorage.setItem('sessionCount', count2);
23          document.getElementById('session').innerHTML = count2;
24      }
25  </script>
26 </body>
27 </html>
View Code

 

posted @ 2016-09-27 17:20  醉梦一生  阅读(917)  评论(0编辑  收藏  举报