使用JavaScript制作一个简单的计数器的方法


Posted in Javascript onJuly 07, 2015

设计思想

该方法的关键是Cookie技术和动态图像特性的综合运用。使用Cookie,可以在用户端的硬盘上记录用户的数据,下次访问此站点时,即可读取用户端硬盘的Cookie,直接得知来访者的身份和访问次数等有关信息。JavaScript中通过document.cookie属性访问Cookie,这个属性包括名字、失效日期、有效域名、有效URL路径等。用等号分开的名字和其值是Cookie的实际数据,本例中用来存储该访问者访问该页面的次数。通过把Web页中的图像映射到一个Images数组,一定条件下修改该数组项的特性,可以实现动态图像显示。本例中,首先预载入一组图像,每次调用该Web页时,随机产生新的一组图像,通过覆盖原图像实现动态的趣味性效果。

 

源程序count.html

 < html>

< head>


< meta http-equiv=″Content-Type″


content=″text/html; charset=gb2312″>


< title>趣味计数器< /title>


< /head>


< body>


< p>< script language=″JavaScript″>


var expdays=60;


var exp=new Date();


exp.setTime(exp.getTime()


(expdays*24*60*60*1000));


function count(info){


//若是该访客的第一次访问,将计数器值赋1,否则加1累积


var wwhcount=getcookie(′wwhcount′);


if (wwhcount==null){


wwhcount=1;


}


else{wwhcount++;}


setcookie(′wwhcount′,wwhcount,exp);


return countdisp(wwhcount)


}


function countdisp(countvar){


//实现随机显示,不足6位以0补全,可以自己调整显示位数


var countvar1=″000000″+countvar;


var howFar1=countvar1.length;


countvar1=countvar1.substring(howFar1, howFar1-1)


var index=″ ″+Math.floor(Math.random()*10);


if (index==″10″){


index=″0″};


for (var icount=0;icount< 6;icount++){


var g=countvar1.substring(icount,icount+1);


document.images[icount].src=″http:


//localhost/images/″+index+g+″.gif″;


}


}


function getCookieVal(offset){


//获取该访问者的已访问次数


var endstr=document.cookie.indexOf(″;″,offset);


if (endstr==-1)


endstr=document.cookie.length;


return unescape(document.cookie.substring(offset,endstr));


}


function getcookie(name){


//截取Cookie中的name信息段


var arg=name+″=″;


var alen=arg.length;


var clen=document.cookie.length;


var i=0;


while (i< clen){


var j=i+alen;


if (document.cookie.substring(i,j)==arg)


return getCookieVal(j);


i=document.cookie.indexOf(″ ″,i)+1;


if (i==0) break;}


return null;


}


function setcookie(name,value){


//存储该访客计数器的数值


var argv=setcookie.arguments;


var argc=setcookie.arguments.length;


var expires=(argc>2)?argv[2]:null;var path=(argc>3)?argv[3]:null;


var domain=(argc>4)?argv[4]:null;


var secure=(argc〉5)?argv[5]:false;


document.cookie=name+″=″+escape(value)


+((expires==null)?″ ″:(″;expires=″+expires.toGMTString()))


+((path==null)?″ ″:(″;path=″+path))+((domain==null)?″


″:(″;domain=″+domain))+((secure==true)?″;secure″:″ ″);


}


function deletecookie(name){


//使该信息行失效,删除该用户关于访问次数的信息


var exp=new Date();


exp.setTime(exp.getTime()-1);


var cval=getcookie(name);


document.cookie=name+″=″+cval+″;expires=″+exp.toGMTString();


}


< /script>< /p>


< ! --预载入图像数组-->


您是第 < img src=″http://localhost/images/00.gif″ height=20 width=20>


< img src=″http://localhost/images/00.gif″


height=20 width=20>


< img src=″http://localhost/images/00.gif″


height=20 width=20>


< img src=″http://localhost/images/00.gif″


height=20 width=20>


< I mg src=″http://localhost/images/00.gif″


height=20 width=20>


< img src=″http://localhost/images/00.gif″


height=20 width=20>次光临!


< script language=″JavaScript″>


//调用count()函数,实现计数器的动态图像显示


count();


< /script>


< /body>


< /html>

注意事项

由于使用了JavaScript语言,因此该方法具有与应用平台的无关性,可以适用于Unix、Windows等多种平台。另外,此计数器不同于一般意义上的访客计数器,专门用于记录某一访客对某一网站的访问次数。

Javascript 相关文章推荐
formvalidator验证插件中有关ajax验证问题
Jan 04 Javascript
js定时器怎么写?就是在特定时间执行某段程序
Oct 11 Javascript
在JavaScript中判断整型的N种方法示例介绍
Jun 18 Javascript
利用原生JS与jQuery实现数字线性变化的动画
Feb 24 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
Mar 08 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
微信小程序调用PHP后台接口 解析纯html文本
Jun 13 Javascript
浅谈super-vuex使用体验
Jun 25 Javascript
JS中数据结构之栈
Jan 01 Javascript
vuex入门最详细整理
Mar 04 Javascript
jQuery cookie的公共方法封装和使用示例
Jun 01 jQuery
element tree树形组件回显数据问题解决
Aug 14 Javascript
JavaScript编写推箱子游戏
Jul 07 #Javascript
使用JavaScript实现连续滚动字幕效果的方法
Jul 07 #Javascript
理解JavaScript的变量的入门教程
Jul 07 #Javascript
Javascript编写俄罗斯方块思路及实例
Jul 07 #Javascript
javascript实现控制div颜色
Jul 07 #Javascript
浅谈JavaScript中的字符编码转换问题
Jul 07 #Javascript
JavaScript中判断两个字符串是否相等的方法
Jul 07 #Javascript
You might like
php入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
php max_execution_time执行时间问题
2011/07/17 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
2015/07/01 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
再论Javascript下字符串连接的性能
2011/03/05 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
javascript每日必学之继承
2016/02/23 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
python发腾讯微博代码分享
2014/01/10 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
python unittest实现api自动化测试
2018/04/04 Python
python实现图片文件批量重命名
2020/03/23 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
python 有效的括号的实现代码示例
2019/11/11 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
Linux不知道文件后缀名怎么判断文件类型
2014/08/21 面试题
企业业务员岗位职责
2014/03/14 职场文书
党员公开承诺事项
2014/03/25 职场文书
求职信范文大全
2014/05/26 职场文书
个人授权委托书模板
2014/09/14 职场文书
采购员岗位职责
2015/02/03 职场文书
婚礼双方父亲致辞
2015/07/27 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python