使用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 相关文章推荐
js网页版计算器的简单实现
Jul 02 Javascript
JS简单实现文件上传实例代码(无需插件)
Nov 15 Javascript
jQuery实现动态添加和删除一个div
Aug 12 Javascript
jQuery往返城市和日期查询实例讲解
Oct 09 Javascript
js实现select二级联动下拉菜单
Apr 17 Javascript
JavaScript动态添加css样式和script标签
Jul 19 Javascript
使用express搭建一个简单的查询服务器的方法
Feb 09 Javascript
Vue使用json-server进行后端数据模拟功能
Apr 17 Javascript
解决layui 复选框等内置控件不显示的问题
Aug 14 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
Apr 18 Javascript
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
May 21 Javascript
JS Web Flex弹性盒子模型代码实例
Mar 10 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/03/27 PHP
php 表单验证实现代码
2009/03/10 PHP
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
PHP7 参数处理机制修改
2021/03/09 PHP
javascript String 对象
2008/04/25 Javascript
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
javascript 页面划词搜索JS
2009/09/28 Javascript
js判断字符是否是汉字的两种方法小结
2014/01/03 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
vue+Element-ui实现分页效果
2020/11/15 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
Python字符串拼接的几种方法整理
2017/08/02 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
对Django的restful用法详解(自带的增删改查)
2019/08/28 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
2020/07/13 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
浅析python连接数据库的重要事项
2021/02/22 Python
html5桌面通知(Web Notifications)实例解析
2014/07/07 HTML / CSS
大专计算机个人求职的自我评价
2013/10/21 职场文书
毕业生自荐书
2013/12/18 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
2016暑期社会实践心得体会范文
2016/01/14 职场文书
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android