zoukankan      html  css  js  c++  java
  • 轻松实现localStorage本地存储

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

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

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

     1 <div class="modal hide fade" id="demo" data-show="true" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
     2     <div class="modal-dialog">
     3             <div class="modal-content">
     4                 <div class="modal-header">
     5                     <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
     6                     <h1 class="modal-title text-center step-show1" id="startModalLabel"><span>弹框demo</span></h1>    
     7                 </div>
     8                 <div class="modal-body">
     9                     弹框内容
    10                 </div>
    11            </div>
    12        </div>
    13 </div>                                    

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

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

     1 //本地存储访客是否第一次访问
     2 var strModel="value";     //定义存储对象的属性名
     3 var storeDisplay=function(){
     4     var modelDisplay=1;      //定义存储对象的属性值
     5     //存储,IE6~IE7 cookie 其他浏览器HTML5本地存储
     6     if(window.localStorage) {
     7         localStorage.setItem(strModel,modelDisplay);  //进行本地存储
     8     }
     9     else {
    10         Cookie.write(strModel,modelDisplay);   //进行Cookie存储
    11     }
    12 };

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

     1 //检测触发是否显示弹窗
     2 var strStoreDate=window.localStorage ? localStorage.getItem(strModel) : Cookie.read(strModel);      //检测浏览器是否支持localStorage
     3  
     4 if(strStoreDate!="1"){    //如果属性值不为1则显示弹框
     5      $('#demo').removeClass("hide");
     6      $('#demo').modal({
     7              show:true  //显示弹框
     8      });
     9 }
    10 
    11 storeDisplay();  //存储信息,将存储属性设置为"1"

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

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

      localStorage.setItem(strModel,modelDisplay)

      以及

      localStorage.getItem(strModel)

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

    同样的,如果我们需要使用sessionStorage来存储访客在当前会话中的信息只需将localStorage替换为sessionStorage即可,这样我们刷新网页的时候信息就不会丢失了。

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

  • 相关阅读:
    渣渣的python的上路
    【tyvj 2038】诡异的数学题
    codeforces_733_A
    NOIP2011 选择客栈
    NOIP 2012 同余方程
    灵渊(seals.cpp/c/pas)
    NOIP 2012 开车旅行
    Mybatis初步详细配置
    SpringMVC之编程式校验
    Spring整合MyBaytis
  • 原文地址:https://www.cnblogs.com/luozhihao/p/4691547.html
Copyright © 2011-2022 走看看