轻松实现localStorage本地存储
相信大家都知道HTML5提供了localStorage和sessionStorage两个新功能,基于这两个功能我们可以实现web资源的离线和会话存储,如果你现在还在用Cookie来临时存储网络资源的话,那就太out了,有这么好的东西放着干吗不用呢?
下面我将通过一个简单的例子来阐述localStorage的用法,实现起来还是相对容易的。例如现在大部分网站都有记录访客第一次访问的信息,如果是第一次访问浏览器在界面上就会弹出一个广告框之类的弹框,之后再访问网站就看不到弹框了,这一效果其实就是用localStorage(之前用Cookie)实现的。
那么现在我们以bootstrap的模态框为例,当用户第一次进入网站的时候弹出模态框,之后就不再弹出,除非用户清除了浏览器的缓存数据。我们的html代码如下:
<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">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h1 class="modal-title text-center step-show1" id="startModalLabel"><span>弹框demo</span></h1>
</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即可,这样我们刷新网页的时候信息就不会丢失了。
怎么样,是不是很强大?还没用的童鞋赶紧试试吧!
轻松实现localStorage本地存储的更多相关文章
- HTML5 localStorage本地存储
介绍 localStorage(本地存储)的使用方式.包括对存储对象的添加.修改.删除.事件触发等操作. 目录 1. 介绍 1.1 说明 1.2 特点 1.3 浏览器最小版本支持 1.4 适合场景 2 ...
- 关于HTML5本地缓存技术LocalStorage 本地存储 和 SessionStorage
如果你想在用户访问的时候记录或者记住他们的行为,你会想到的是什么,cookie 和session.但今天告诉你还有两种或者说是1种吧 那就是html5的 LocalStorage 本地存储和 Sess ...
- HTML5 LocalStorage 本地存储
HTML5 LocalStorage 本地存储 说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cookies自然是大家都知道,问题主要就是太小,大概也就 ...
- (转载)HTML5 LocalStorage 本地存储
原文地址:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html HTML5 LocalStorage 本地存储 说到本地 ...
- Localstorage本地存储兼容函数
前言HTML5提供了本地存储的API:localstorage对象和sessionStorage对象,实现将数据存储到用户的电脑上.Web存储易于使用.支持大容量(但非无限量)数据同时存储,同时兼容当 ...
- HTML5 LocalStorage 本地存储(转)
原文:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html HTML5 LocalStorage 本地存储 说到本地存储 ...
- localstorage本地存储的简单使用
我们在做页面时会用到本地存储的时候,今天说说localStorage本地存储. 1.localStorage.name="老王"; //第一种设置存储本地数据的方法loc ...
- localStorage本地存储技术
localStorage 本地存储技术 本地存储技术,“不是永久的永久存储” 特点: 将数据存储到浏览器当中 存储的数据都是以字符串的形式存储的 和传统的数据库相比: 优点: 操作简单,容易学习 数据 ...
- 初识html5的localStorage本地存储
一.概述 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前,这些都是 ...
随机推荐
- Jexus针对Asp.net core应用程序的六大不可替代的优势
1,配置简便:在Jexus上,Asp.net core只是Jexus上的一个"站点",因此,只需在Jexus上配置这个站点就行,无需其它配置: 2,操作统一:Jexus停止这个站点 ...
- 细说angular Form addControl方法
在本篇博文中,我们将接触angular的验证.angular的验证是由form 指令和ngModel协调完成的.今天博主在这里想要说的是在验证在的一种特殊情况,当验证控件没有没有name属性这是不会被 ...
- XMPie Tracking 操作
XMPie Tracking 操作 1.1 打开页面 我们随便打开一个页面,这里打开landing.aspx 我们想要跟踪页面,选中DW上面的TrackingàTracking Page Vis ...
- 404 Not Found !
MyEclipse中tomcat服务器运行好好的, 却总是报错, 代码没啥问题啊!! 之前都是运行好好的, 难道是我广告不小心改了哪里引起的?于是对比,回退代码,但是结果还是一样的!! 一个简简单单的 ...
- jQuery监听文本框值改变触发事件(propertychange)
完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- 学习ASP.NET MVC(三)——我的第一个ASP.NET MVC 视图
今天我将对前一篇文章中的示例进行修改,前一篇文章中并没有用到视图,这次将用到视图.对于前一个示例中的HelloWorldController类进行修改,使用视图模板文件生成HTML响应给浏览器. 一. ...
- eclipse提交项目到github
1.在https://github.com new repository 2.在eclipse中new project 比如:Test项目 3.右击"Test"->Te ...
- cordova编译报错:Execution failed for task ':processDebugResources'
cordova编译报错:Execution failed for task ':processDebugResources' 引发这个错误的最扩祸首就是一个中文命名的文件,不知道什么时候加入的,我写了 ...
- android TextView 文字垂直的设置
<TextView android:id="@+id/tv_status" android:layout_width="wrap_content" and ...
- Bmob基础
BaaS是指专为移动应用开发者提供整合云后端的服务.开发者无需过多研究服务器端程序,而只需调用云计算平台提供的API,使用相应SDK,就能迅速完成数据存储.账户管理.消息推送.社交网络整合等功能.本文 ...