HTML5入门

跟KingDZ学HTML5之八:本地储存

字号+ 作者: 来源: 2014-11-16 20:49 我要评论( )

好了,今天有事崭新的一天啊,经过前面几个课程的学习,我想大伙应该差不多已经可以写一些HTML5的应用了,Canvas 的用途太多了,我以后和大家慢慢的谈论,呵呵 弄不好,开个专题,

 好了,今天有事崭新的一天啊,经过前面几个课程的学习,我想大伙应该差不多已经可以写一些HTML5的应用了,Canvas 的用途太多了,我以后和大家慢慢的谈论,呵呵

弄不好,开个专题,也可以。(*^__^*) 嘻嘻……。好了开始我们今天的课程吧。

大家都应该知道 Cookies 这个东东哦,但是太郁闷了,他只有 4K  ?  真的啊,呵呵,要是工资底薪还可以。。哈哈

这节课,俺说的这个和COOKIES 差不多。好了,废话不多说,我们讲课。

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

  • localStorage - 没有时间限制的数据存储
  • sessionStorage - 针对一个 session 的数据存储

之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

localStorage 

目前 chrome,firefox,opera,safari, IE8 都支持此属性。还有一个很重要的一点,就是

各个浏览器分配给每个 localStorage 空间至少为 5M(具体数值请看稍后讨论),对于想开始使用 HTML5 的人们来说,这个是个不错的开始。哈哈,5M >>>> 4k 啊

我们先来一个测试,验证浏览器是否支持 localStorage

XML/HTML Code复制内容到剪贴板
  1. <! doctype html>  
  2. <html>  
  3. <head>  
  4.     <script type="text/javascript">  
  5.         function check() {  
  6.             if (window.localStorage) {  
  7.                 alert("浏览器支持 localStorage");  
  8.             }  
  9.             else {  
  10.                 alert("浏览器不支持 localStorage");  
  11.             }  
  12.         }  
  13.     </script>  
  14. </head>  
  15. <body>  
  16.     <canvas id="mycanvas" width="200" height="200">不支持此标签 KingDZ原创 http://www.cnblogs.com/hihell </canvas>  
  17.     <input type="button" value="验证" onclick="check();" />  
  18.     <body>  
  19. </html>  

效果图---谷歌测试结果。

1

localStorage 使用方式非常简单

有 setItem, getItem, removeItem,key, clear 5个方法,和 length 一个属性。

好了,下面我们开始尝试一下吧。

localStorage 中都是以 key/value 的形式来存储数据的,存储的数据类型都是字符串。

如果需要其他类型,需要自行转换。我们可以使用 setItem 方法来存储数据。

也就是  localStorage.setItem(key,value);

JavaScript Code复制内容到剪贴板
  1. <script type="text/javascript">  
  2.         function check() {  
  3.             if (window.localStorage) {  
  4.                 try {  
  5.                     localStorage.setItem("name""祖国你好!");  
  6.                 }  
  7.                 catch (e) {  
  8.                     alert(e);  
  9.                 }  
  10.             }  
  11.             else {  
  12.                 alert("浏览器不支持 localStorage");  
  13.             }  
  14.             alert(localStorage.getItem("name"));  
  15.         }  
  16.     </script>  

上面的这个例子就包括了我们常见的两种用法。

1

下面我们在介绍几个不同的用法,但是以上面的那两个为主

localStorage.key = "value";     ---------------------设置key为"value" 
localStorage["key"] = "value";        ------------------设置key为"value" 
localStorage.setItem("key","value");----------------设置key为"value" 
var value1 = localStorage["key"];-------------------获取key的值 
var value2 = localStorage.key;-------------------------获取key的值 
var value3 = localStorage.getItem("key");   ------------获取b的值

 

上面的方法是等效的。不过建议大家用   setItem 和 getItem

localStorage.removeItem("key");--------------------清除key的值

如果希望一次性清除所有的键值对,可以使用clear();

localStorage.clear();

当然  localStorage有一个 key() 方法,我只在这里提示一下,就是,不知道 key 是什么了,只能用 循环 得到  也就是  localStorage.key(i)  ------------其中  i  是下标。

好了下面是一个简单的页面 访问计数器。

XML/HTML Code复制内容到剪贴板
  1. <head>  
  2.     <script type="text/javascript">  
  3.         function check() {  
  4.             if (window.localStorage) {  
  5.                 try {  
  6.                     if (localStorage.pagecount) {  
  7.                         localStorage.pagecount = Number(localStorage.pagecount) + 1;  
  8.                     }  
  9.                     else {  
  10.                         localStorage.pagecount = 1;  
  11.                     }  
  12.                     document.write("第" + localStorage.pagecount + "次访问");  
  13.                 }  
  14.                 catch (e) {  
  15.                     alert(e);  
  16.                 }  
  17.             }  
  18.             else {  
  19.                 alert("浏览器不支持 localStorage");  
  20.             }  
  21.         }  
  22.     </script>  
  23. </head>  
  24. <body onload="check();">  
  25.      <canvas id="mycanvas" width="200" height="200">不支持此标签 KingDZ原创 http://www.cnblogs.com/hihell </canvas>  
  26. <body>  

好了   完成了,大家测试一下吧,当然有各种各样的写法的。

 

下面我们说一下  sessionStorage   的简单用法

哈哈,其实废话了 ,他们的用法相同,区别在文章开始,就说了,

再写一个计数器  sessionStorage   版本的

JavaScript Code复制内容到剪贴板
  1. <script type="text/javascript">  
  2.         function check() {  
  3.             if (!sessionStorage.pageCounter)  
  4.                 sessionStorage.setItem('pageCounter', 0);  
  5.                 sessionStorage.setItem('pageCounter', parseInt(sessionStorage.pageCounter) + 1);  
  6.                 document.write(sessionStorage.pageCounter);  
  7.         }  
  8.     </script>  

好了,大家试一下啊,关闭浏览器,打开看真相。

呵呵,前者,木有时间限制,后者浏览器关闭,就结束了。所以记得及时清空前者啊。今天得课程结束喽。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 盘点HTML5标签使用的常见误区

    盘点HTML5标签使用的常见误区

    2014-11-16 20:49

  • 跟KingDZ学HTML5之十三:HTML5颜色选择器

    跟KingDZ学HTML5之十三:HTML5颜色选择器

    2014-11-16 20:49

  • 跟KingDZ学HTML5之十二:Form表单元素新增属性

    跟KingDZ学HTML5之十二:Form表单元素新增属性

    2014-11-16 20:49

  • 跟KingDZ学HTML5之十一:表单新元素

    跟KingDZ学HTML5之十一:表单新元素

    2014-11-16 20:49

网友点评