使用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简易缓动插件(源码打包)
Feb 16 Javascript
IE不支持getElementsByClassName最终完美解决方案
Dec 17 Javascript
js+html+css实现鼠标移动div实例
Jan 30 Javascript
js replace 与replaceall实例用法详解
Aug 03 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
Apr 25 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
Sep 16 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
Jul 06 Javascript
Jquery表单验证失败后不提交的解决方法
Oct 18 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
Nov 16 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
Apr 24 Javascript
小程序点赞收藏功能的实现代码示例
Sep 07 Javascript
vue使用vant中的checkbox实现全选功能
Nov 17 Vue.js
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查询搜索引擎排名位置的代码
2010/01/05 PHP
10条PHP高级技巧[修正版]
2011/08/02 PHP
解析php中memcache的应用
2013/06/18 PHP
php创建多级目录的方法
2015/03/24 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
Python实现的金山快盘的签到程序
2013/01/17 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
详解python读取image
2019/04/03 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
python类共享变量操作
2020/09/03 Python
用python制作个音乐下载器
2021/01/30 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
草莓网英国官网:Strawberrynet UK
2017/02/12 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
安全教育感言
2014/03/04 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
鉴定评语大全
2014/05/05 职场文书
大学生操行评语大全
2014/12/31 职场文书
结婚仪式主持词
2015/06/29 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js
无线电通信名词解释
2022/02/18 无线电
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js