Htlm5本地存储和连线时段储存应用举例

HTML5 提供了两种在客户端存储数据的新方法也就是Web Storage 分成两个部分:

    ■ Local Storage (本地储存空间)没有时间限制的数据存储;
    ■ 还有 Session Storage(连线时段储存空间)针对一个 session 的数据存储

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

在 HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。

对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。

HTML5 使用 JavaScript 来存储和访问数据。

Web Storage 是个很有用的功能,通过 JavaScript ,你可以把内容存储到用户的浏览器上。比如用户通过你的应用写文章,你可以实时的把用户写的内容记录到 Local Storage 里面,这样在出现网络故障的时候,你可以把用户写的内容恢复出来。

local Storage 方法

localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

如何创建和访问 localStorage:

  1. <script type="text/javascript">
  2. localStorage.lastname="Smith";
  3. document.write(localStorage.lastname);
  4. </script>

运行结果:

Last name: Smith

下面的例子对用户访问页面的次数进行计数:

  1. <script type="text/javascript">
  2. if (localStorage.pagecount)
  3.   {
  4.   localStorage.pagecount=Number(localStorage.pagecount) +1;
  5.   }
  6. else
  7.   {
  8.   localStorage.pagecount=1;
  9.   }
  10. document.write("Visits "+ localStorage.pagecount + " time(s).");
  11. </script>

只要刷新网页,浏览次数就会不停的计数。

在线预览:http://runjs.cn/detail/0trvxslc

session Storage 方法

session Storage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。不是一种持久化的本地存储,仅仅是会话级别的存储。

如何创建并访问一个 sessionStorage:

  1. <script type="text/javascript">
  2. sessionStorage.lastname="Smith";
  3. document.write(sessionStorage.lastname);
  4. </script>

运行结果
Smith
下面的例子对用户在当前 session 中访问页面的次数进行计数:

  1. <script type="text/javascript">
  2. if (sessionStorage.pagecount)
  3.   {
  4.   sessionStorage.pagecount=Number(sessionStorage.pagecount) +1;
  5.   }
  6. else
  7.   {
  8.   sessionStorage.pagecount=1;
  9.   }
  10. document.write("Visits "+sessionStorage.pagecount+" time(s) this session.");
  11. </script>

浏览器支持

浏览器的支持除了IE7及以下不支持外,其他标准浏览器都完全支持(ie及FF需在web服务器里运行),值得一提的是IE总是办好事,例如IE7、IE6中的UserData其实就是javascript本地存储的解决方案。通过简单的代码封装可以统一到所有的浏览器都支持web storage。

要判断浏览器是否支持local Storage可以使用下面的代码:

  1. if(window.localStorage){ alert("浏览支持local Storage")}else{ alert("浏览暂不支持local Storage")}//或者
  2.  
  3. if(typeof window.localStorage == 'undefined'){ alert("浏览暂不支持localStorage")}

local Storage和session Storage操作

local Storage和sessionS torage都具有相同的操作方法,例如 setItem、getItem 和 removeItem 等
local Storage和session Storage的方法:

setItem存储value

用途: 将 value 存储到key字段
用法: .setItem( key, value)

  1. sessionStorage.setItem("key", "value");
    
  2. localStorage.setItem("site", "js8.in");

getItem获取value
用途:获取指定key本地存储的值
用法:.getItem(key)

  1. var value = sessionStorage.getItem("key");  
    
  2. var site = localStorage.getItem("site");

removeItem删除key
用途:删除指定key本地存储的值
用法:.removeItem(key)

  1. sessionStorage.removeItem("key");  
    
  2. localStorage.removeItem("site");

clear清除所有的key/value
用途:清除所有的key/value
用法:.clear()

  1. sessionStorage.clear();  
    
  2. localStorage.clear();

发布日期:

所属分类: Css/Html5, JavaScript/jquery 标签: