轻松实现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 的数据存储 之前,这些都是 ...
随机推荐
- python 之readability与BeautifulSoup
以前要采集某个网页,一般做法是写程序源代码爬出来,然后用正则去匹配出来,这种针对指定的网页去爬效果还可以,但是如果是批量的网页这种实现就会变得不现实,在这时候就有readability出手的意义了,r ...
- 图解,为多个oracle数据库下添加ArcSde实例
最开始肯定要先建一个oracle数据库,我假设名称为dbgis 1, 2, 3, 不重新指定就会出现这个错误,因为以前有sde.dbf文件了 4, 5, 6, 7, 8, 如果以前授权成功过就会出现这 ...
- UWP?UWP! - Build 2015有些啥?(1)
UWP?UWP! - Build 2015有些啥? Build 2015圆满落幕了,不知大家有多少人刷夜看了直播呢?不管怎么说,想必各位都很好奇在这场微软开发者盛宴上,Microsoft又发布了什么令 ...
- Java枚举类型getClass和getDeclaringClass区别(未完待续)
Java中的枚举类型有getClass()和getDeclaringClass()两个方法,在通常情况下这两个方法返回的类型一样,在某些场景下会有不同的表现 参照 http://stackoverfl ...
- redis系列-redis的使用场景
redis越来越受大家欢迎,提升下速度,做下缓存,完成KPI之利器呀.翻译一篇文章<<How to take advantage of Redis just adding it to yo ...
- C#基础入门一
.net(软件开发平台)-------------------------------------------------------- 学习内容:.net平台下的开发语言. .net freamwo ...
- SVN修改已提交版本的注释
SVN提交文件后,发现注释写的不完整或不够明确,想再修改注释文字.通过View Project History dialog修改完成后,在提交时遇到如下错误:Repository has not be ...
- Redis教程(十四):内存优化介绍
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/142.html 一.特殊编码: 自从Redis 2.2之后,很多数据类型都 ...
- Atitit usrQBK13 html dsl 规范与解决方案
Atitit usrQBK13 html dsl 规范与解决方案 1.1. Vue vs anrular1 1.2. 定义html dsl变量1 1.3. 变量赋值1 1.4. 条件渲染指令1 2 ...
- Atitit jsr规范有多少个 407个。Jsr规范大全
Atitit jsr规范有多少个 407个.Jsr规范大全 1.1. JCP维护职能是发展和更新.1 1.2. Java技术规范.参考实现(RI).技术兼容包(TCK)1 1.3. JCP维护的规范 ...