HTML5本地存储(转)

html5带给们的不仅仅是更多语义丰富的标签,还有更多新特性,比如本地存储。要在客户端保存用户一些数据,我们首选使用 cookie,但是cookie最多只能存储4kb,而HTML5的本地存储localStorage可以存储5M的数据,这将对web开发以及移动终端 应用带来革命性的转变。

查看演示DEMO

目前主流浏览器都支持localStorage本地存储,而微软从IE8就出人意料的开始支持localStorage。本文将和您一起分享HTML5本地存储localStorage相关知识,通过实例熟悉本地存储的在WEB开发中的应用。

如何使用localStorage?

localStorage的使用非常简单,提供了设置、获取和删除等方法。如:

//设置存储客户端的键值bar的值为123 
localStorage.setItem("bar", "123"); 
//获取客户端存储的键值bar的值 
var foo = localStorage.getItem("bar"); 
//删除键值 
localStorage.removeItem("bar");

示例1.计数器

我们先来看一个实例,用localStorage来做一个计数器,计算用户访问页面的次数。

var count = localStorage.getItem("pagecount"); 
if(count){ 
    count = Number(localStorage.pagecount) +1; 
}else{ 
    count = 1; 
} 
document.write("view times:"+count);

运行以上代码后,你会发现只要每次刷新页面,访问次数会加1,如果你关掉页面下次打开,还能看到访问次数在增加并且一直保存在你电脑里,直到有一天你使用removeItem()清空存储的数据。

示例2.记录页面状态

在页面中,我们有一个TAB标签,点击后可以切换不同的TAB对应的内容,我们现在要做的是本地保存用户点击的是哪个TAB,以及对应的展示内容,当用户刷新页面或者关闭后N长时间再打开该页面时,TAB的对应状态保留上次关闭页面时的状态。

html

我们在页面上建立5个TAB,并对应5个list。

<div id="nav"> 
     <ul> 
        <li><a href="#">HTML/css</a></li> 
        <li><a href="#">javascript/Ajax/jquery</a></li> 
        <li><a href="#">PHP+MYSQL</a></li> 
        <li><a href="#">前端观察</a></li> 
        <li><a href="#">HTML5/移动WEB应用</a></li> 
    </ul> 
</div> 
<div id="page"> 
    <div class="list">1</div> 
    <div class="list">2</div> 
    <div class="list">3</div> 
    <div class="list">4</div> 
    <div class="list">5</div> 
</div>

接着我们用CSS来规范下页面。

CSS

#nav{height:42px; border:1px solid #d3d3d3; background:#f7f7f7;-moz-border-radius:2px;  
-webkit-border-radius:2px; border-radius:2px; -moz-box-shadow:1px 1px 2px rgba(0,0,0,.2);  
-webkit-box-shadow:1px 1px 2px rgba(0,0,0,.2); box-shadow:1px 1px 2px rgba(0,0,0,.2);} 
#nav li{float:left; height:42px; line-height:42px; padding:0 10px;  
border-right:1px solid #d3d3d3; font-size:14px; font-weight:bold} 
#nav li.cur{background:#f1f1f1; border-top:1px solid #f60; box-shadow:none} 
#nav li a{text-decoration:none; display:block} 
#nav li.cur a{color:#333} 
#nav li a:hover{color:#f30} 
#page{margin:20px auto} 
.list{display:none}

如果你的浏览器支持css3的话,你将看到圆角和阴影效果。

最后我们来实现本地存储的功能。我们的功能基于jquery库,所以记得在html中先载入jquery库文件,当然你也可以使用原生的javascript代码来实现。

var show = 0; //定义默认展示的是第一个TAB选中状态 
if (window.localStorage){ //如果浏览器支持localStorage 
    var navShow = localStorage.getItem("shownum"); //获取客户端TAB状态 
    if(navShow==null){ //如果为空,即第一次打开 
        //将默认的第一个TAB设置为选中状态并显示与其对应的list 
        $("#nav ul li").eq(show).addClass("cur").siblings().removeClass("cur"); 
        $(".list").eq(show).show().siblings().hide(); 
    } 
    $("#nav ul li").each(function(index){ //遍历每个TAB 
        var li = $(this); 
        show = li.attr("cur")==true?index:show; //如果当前TAB被点击选中,则将show值设为当前的索引值 
        if(index==navShow){ //如果当前索引值与存储的TAB状态值一致 
            li.addClass("cur"); //设置为选中状态样式 
            $(".list").eq(index).show().siblings().hide(); //显示对应的list 
        } 
        li.click(function(){ //当单击当前TAB时 
            li.addClass("cur").siblings().removeClass("cur");//设置为选中状态样式 
            $(".list").eq(index).show().siblings().hide(); //显示对应的list 
            localStorage.setItem("shownum",index); //将TAB选中状态存储到本地 
        }); 
    }); 
}else{//如果浏览器不支持localStorage 
    alert(‘您的浏览器不支持localStorage.‘); 
}

我们首先获取本地数据,得到对应的选中状态的TAB,如果未能获取到,则调用默认值,即选中第一个TAB。遍历TAB时,如果发现某 个TAB是选中 状态,则设置选中样式cur,即完成了TAB初始化的过程。接下来用户操作,当点击任意TAB时,设置对应的样式,并保存状态到本地,下次刷新就可以看到 上次保存的状态。

转自:http://www.helloweba.com/view-blog-201.html

时间: 2024-10-02 11:16:20

HTML5本地存储(转)的相关文章

利用HTML5开发Android(7)---HTML5本地存储之Database Storage

在上一篇<HTML5本地存储之Web Storage篇>中,简单介绍了如何利用localStorage实现本地存储:实际上,除了sessionStorage和localStorage外,HTML5还支持通过本地数据库进行本地数据存储,HTML5采用的是"SQLite"这种文件型数据库,该数据库多集中在嵌入式设备上,熟悉IOS/Android开发的同学,应该对SQLite数据库比较熟悉. HTML5中的数据库操作比较简单,主要有如下两个函数: 1.通过openDatabase

利用HTML5开发Android(4)---HTML5本地存储之Web Storage

Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Storage官方建议为每个网站5MB. Web Storage又分为两种: sessionStorage localStorage 从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了:而localStorage则一直将数据保存在客户端本地: 不管

HTML5本地存储LocalStorage和sessionStorage

以前用wordpress做博客的时候,我做了个点赞的功能.设计这个点赞功能的时候,为防止访客不断刷赞,得做个时间间隔限制,首先我的设计方案是在数据库里记录ip和点赞的时间,后来一想那还得维护数据库(其实是觉得都没人点赞还弄得那么严格搞什么),果断改成把数据放到本地保存. 本地存储数据首先想到得是cookie和html5的 localStorage. cookie兼容性好,但是存储的数据量太少;localStorage存储量大,但是兼容性不是很好,毕竟ie6之流还是有不少份额的.最后考虑到 htm

我的项目9 网页之间传值二 HTML5本地存储

在我的项目1中写到过网页之间传值,但是那种方式在andriod4.0和以下版本就传不过去了,于是乎,就打起了HTML5本地存储的注意.大家看一下代码就知道什么意思了: 发送数据页面: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script type="text/javascript">

HTML5本地存储localStorage与sessionStorage

在最近的项目中用到了html5的本地存储,下面总结一下. 1.html5几种存储形式 本地存储(localStorage && sessionStorage) 离线缓存(application cache) indexedDB 和 webSQL 2.localStorage && sessionStorage 过期时间:localStorage 永久存储,永不失效除非手动删除 sessionStorage 浏览器重新打开后就消失了 大小:每个域名是5M. 注:cookie一

HTML5本地存储实例页面

HTML代码: <ul id="edit" contenteditable="true"> <li>修改我吧,然后刷新页面看看,^_^</li> </ul> JS代码: var edit = document.getElementById("edit"); edit.onblur = function(){ localStorage.setItem("tododata", thi

(转)HTML5 本地存储

原文:http://www.cnblogs.com/rainman/archive/2011/06/22/2086069.html HTML5 本地存储 1.sessionStorage 2.localStorage 3.Database Storage 4.globalStorage 5.兼容性 参考文献 本地持久化存储一直是本地客户端程序优于 web 程序的一个方面.对于本地应用程序,操作系统会一共一个抽象层,用于存储和获取特定于应用程序的数据,例如用户设置或者运行时状态.这些值可以被存储于

探索HTML5本地存储功能运用技巧(1)

通过实例,我们可以加深对HTML5本地存储的理解,并且可以熟练运用. 我们来实现一个简单应用,该应用中用户输入用户名和手机号,相关因袭可以保存到保存到本地,并可以进行查找.展示等基本操作. 以下只给我出关键代码,项目结构和基本代码以及CSS样式大家可以自己添加. 我们按照功能进行分布完成. 1.         存储功能 这里我们要完成,当用户输入姓名和手机号时,自己的信息存储到Web Storage中,html中代码如下: <form> <labelfor="username

HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等

HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存.我们这里以 localStorage 为例,简要介绍下 HTML5 的本地存储,并针对如遍历等常见问题作一些示例说明. localStorage 是 HTML5 本地存储的 API,使用键值对的方式进行存取数据,存取的数据只能是字符串.不同浏览器对该 API 支持情况有所差

HTML5 本地存储

说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cookies自然是大家都知道,问题主要就是太小,大概也就4KB的样子,而且IE6只支持每个域名20个cookies,太少了.优势就是大家 都支持,而且支持得还蛮好.很早以前那些禁用cookies的用户也都慢慢的不存在了,就好像以前禁用javascript的用户不存在了一样. userData是IE的东西,垃圾.现在用的最多的是Flash吧,空间是Cookie的25倍,基本够用.再之后Google推出了