使用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 相关文章推荐
javascript 实现父窗口引用弹出窗口的值的脚本
Aug 07 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
Dec 20 Javascript
一个简单的Node.js异步操作管理器分享
Apr 29 Javascript
JavaScript的类型、值和变量小结
Jul 09 Javascript
javascript基本语法
May 31 Javascript
Html5 js实现手风琴效果
Apr 17 Javascript
原生JS+Canvas实现五子棋游戏实例
Jun 19 Javascript
对于Javascript 执行上下文的全面了解
Sep 05 Javascript
微信小程序实现tab切换效果
Nov 21 Javascript
解析Vue2 dist 目录下各个文件的区别
Nov 22 Javascript
vue.js前后端数据交互之提交数据操作详解
Apr 24 Javascript
element-ui中Table表格省市区合并单元格的方法实现
Aug 07 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制作简单的内容采集器的原理分析
2008/10/01 PHP
PHP MSSQL 分页实例
2016/04/13 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
js中opener与parent的区别详细解析
2014/01/14 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
Python函数式编程
2017/07/20 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
Django之模板层的实现代码
2019/09/09 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
html5使用canvas绘制一张图片
2014/12/15 HTML / CSS
HTML5有哪些新特征
2015/12/01 HTML / CSS
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
大学生四年生活自我鉴定
2013/11/21 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
中国梦读书活动总结
2014/07/10 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2014年幼儿园个人工作总结
2014/11/10 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
如何用python反转图片,视频
2021/04/24 Python
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python
React自定义hook的方法
2022/06/25 Javascript