使用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 相关文章推荐
DHTML Slide Show script图片轮换
Mar 03 Javascript
JS 常用校验函数
Mar 26 Javascript
javascript 读取图片文件的大小
Jun 25 Javascript
JavaScript Cookie的读取和写入函数
Dec 08 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
Dec 12 Javascript
location对象的属性和方法应用(解析URL)
Apr 12 Javascript
js二级地域选择的实现方法
Jun 17 Javascript
用js替换除数字与逗号以外的所有字符的代码
Jun 07 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
Jun 22 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
Dec 23 Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 Javascript
JS array数组检测方式解析
May 19 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验证码函数代码(简单实用)
2013/09/29 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
运用jquery实现table单双行不同显示并能单行选中
2009/07/25 Javascript
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
轮播的简单实现方法
2016/07/28 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
项目专员岗位职责
2013/12/04 职场文书
最新茶叶店创业计划书
2014/01/14 职场文书
军训自我鉴定怎么写
2014/02/13 职场文书
中国好声音华少广告词
2014/03/17 职场文书
学校消防安全责任书
2014/07/23 职场文书
校外活动方案
2014/08/28 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
催款函范文
2015/06/24 职场文书
开业庆典致辞
2015/08/01 职场文书
初中生活随笔
2015/08/15 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
pt-archiver 主键自增
2022/04/26 MySQL