使用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 相关文章推荐
表单提交验证类
Jul 14 Javascript
JavaScript入门之对象与JSON详解
Oct 21 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
Mar 19 Javascript
判断一个变量是数组Array类型的方法
Sep 16 Javascript
js 获取当前web应用的上下文路径实现方法
Aug 19 Javascript
微信小程序 教程之小程序配置
Oct 17 Javascript
详谈js模块化规范
Jul 07 Javascript
JavaScript寄生组合式继承原理与用法分析
Jan 11 Javascript
JavaScript继承与聚合实例详解
Jan 22 Javascript
详解如何运行vue项目
Apr 15 Javascript
如何实现iframe父子传参通信
Feb 05 Javascript
浅谈vue中$bus的使用和涉及到的问题
Jul 28 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 HTML代码串 截取实现代码
2009/06/29 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
php批量删除操作代码分享
2017/02/26 PHP
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
AngularJS 整理一些优化的小技巧
2016/08/18 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
Python中分数的相关使用教程
2015/03/30 Python
详解Python的Django框架中的模版继承
2015/07/16 Python
Random 在 Python 中的使用方法
2018/08/09 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
Python实现疫情地图可视化
2021/02/05 Python
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
自动化专业个人求职信范文
2013/11/29 职场文书
上班看电影检讨书
2014/02/12 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
小学教师寄语大全
2014/04/03 职场文书
运动会入场口号
2014/06/07 职场文书
体育教师个人总结
2015/02/09 职场文书
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL
vue实现登陆页面开发实践
2022/05/30 Vue.js