轻松实现localStorage本地存储

相信你们都知道HTML5提供了localStorage和sessionStorage两个新功能,基于这两个功能咱们能够实现web资源的离线和会话存储,若是你如今还在用Cookie来临时存储网络资源的话,那就太out了,有这么好的东西放着干嘛不用呢?html

下面我将经过一个简单的例子来阐述localStorage的用法,实现起来仍是相对容易的。例如如今大部分网站都有记录访客第一次访问的信息,若是是第一次访问浏览器在界面上就会弹出一个广告框之类的弹框,以后再访问网站就看不到弹框了,这一效果其实就是用localStorage(以前用Cookie)实现的。web

那么如今咱们以bootstrap的模态框为例,当用户第一次进入网站的时候弹出模态框,以后就再也不弹出,除非用户清除了浏览器的缓存数据。咱们的html代码以下:bootstrap

<div class="modal hide fade" id="demo" data-show="true" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">浏览器

    <div class="modal-dialog">缓存

            <div class="modal-content">cookie

                <div class="modal-header">网络

                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>session

                    <h1 class="modal-title text-center step-show1" id="startModalLabel"><span>弹框demo</span></h1>    ide

                </div>函数

                <div class="modal-body">

                    弹框内容

                </div>

           </div>

       </div>

</div>

好了,咱们已经轻松搭建好了一个漂亮的弹窗,默认是隐藏的,如今咱们所要作的就是在访客第一次访问的时候显示这个弹窗,接下来咱们就来编写JS代码:

首先咱们来记录访客第一次访问的信息,若是是第一次访问咱们就赋予一个变量值为"1",当访客再次访问的时候浏览器就会去寻找这个变量的值,若是为1则进行某操做,若是不为1则进行另外一操做,代码以下:

//本地存储访客是否第一次访问

var strModel="value";     //定义存储对象的属性名

var storeDisplay=function(){

    var modelDisplay=1;      //定义存储对象的属性值

    //存储,IE6~IE7 cookie 其余浏览器HTML5本地存储

    if(window.localStorage) {

        localStorage.setItem(strModel,modelDisplay);  //进行本地存储

    }

    else {

        Cookie.write(strModel,modelDisplay);   //进行Cookie存储

    }

};

ok,咱们的存储代码已经写好了,接下来咱们就要来触发它了,调用上述storeDisplay()函数便可,同时由于有些低版本浏览器还不支持localStorage,因此触发以前还要判断下浏览器是否支持localStorage,不支持则使用Cookie存储,实现全兼容。代码以下:

//检测触发是否显示弹窗

var strStoreDate=window.localStorage ? localStorage.getItem(strModel) : Cookie.read(strModel);      //检测浏览器是否支持localStorage

 

if(strStoreDate!="1"){    //若是属性值不为1则显示弹框

     $('#demo').removeClass("hide");

     $('#demo').modal({

             show:true  //显示弹框

     });

}


storeDisplay();  //存储信息,将存储属性设置为"1"

这样一来当访客第一次访问的时候strStoreDate的值其实为'undefinded',不等于'1',因此就会执行if里面的语句显示弹框,而后再将存储属性设置为'1',而当访客第二次访问时属性值已经为'1'了就不会执行if里面的语句,弹框仍是默认隐藏状态,ok,完成。

经过上述例子咱们利用localStorage轻松地实现了一个记录访客是否第一次访问的功能,利用

  localStorage.setItem(strModel,modelDisplay)

  以及

  localStorage.getItem(strModel)

  来设置和获取属性值是最重要的步骤,

一样的,若是咱们须要使用sessionStorage来存储访客在当前会话中的信息只需将localStorage替换为sessionStorage便可,这样咱们刷新网页的时候信息就不会丢失了。

怎么样,是否是很强大?还没用的童鞋赶忙试试吧!

相关文章
相关标签/搜索