使用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 打印页面代码
Mar 24 Javascript
jQuery 使用手册(五)
Sep 23 Javascript
JQuery为textarea添加maxlength属性的代码
Apr 07 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
Aug 18 Javascript
JS实现下拉菜单赋值到文本框的方法
Aug 18 Javascript
基于BootStrap的图片轮播效果展示实例代码
May 23 Javascript
js 作用域和变量详解
Feb 16 Javascript
基于jquery实现多级菜单效果
Jul 25 jQuery
微信小程序实现的涂鸦功能示例【附源码下载】
Jan 12 Javascript
详解vue组件开发脚手架
Jun 15 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
Aug 24 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
May 09 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
Oracle 常见问题解答
2006/10/09 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
2017/09/04 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
基于wordpress的ajax写法详解
2018/01/02 Javascript
Vuex中mutations与actions的区别详解
2018/03/01 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
js实现验证码功能
2020/07/24 Javascript
[00:10]神之谴戒
2019/03/06 DOTA
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Python程序设计入门(3)数组的使用
2014/06/16 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
python实现字符串和字典的转换
2018/09/29 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
python实现吃苹果小游戏
2020/03/21 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
Python的信号库Blinker用法详解
2020/12/31 Python
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
化学教育专业自荐信
2014/07/04 职场文书
地道战观后感400字
2015/06/04 职场文书
初中班主任心得体会
2016/01/07 职场文书
导游词之襄阳古城
2019/09/27 职场文书
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python
MySQL 计算连续登录天数
2022/05/11 MySQL