使用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 相关文章推荐
jquery 简短右键菜单 多浏览器兼容
Jan 01 Javascript
Jquery进度条插件 Progress Bar小问题解决
Jul 12 Javascript
Jquery 获取对象的几种方式介绍
Jan 17 Javascript
JS控制输入框内字符串长度
May 21 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
Apr 26 Javascript
javascript实现下雨效果
Mar 27 Javascript
React-Native左右联动List的示例代码
Sep 21 Javascript
浅谈Vue数据绑定的原理
Jan 08 Javascript
详解JWT token心得与使用实例
Aug 02 Javascript
react实现移动端下拉菜单的示例代码
Jan 16 Javascript
vue解决跨域问题(推荐)
Nov 10 Javascript
微信小程序实现点赞业务
Feb 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连接函数implode与分割explode的深入解析
2013/06/26 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
jQuery live( type, fn ) 委派事件实现
2009/10/11 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
JS前端加密算法示例
2016/12/22 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
vuex的使用步骤
2021/01/06 Vue.js
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
python采用getopt解析命令行输入参数实例
2014/09/30 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
Python与R语言的简要对比
2017/11/14 Python
Python 的AES加密与解密实现
2019/07/09 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
用python制作个音乐下载器
2021/01/30 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
解释下面关于J2EE的名词
2013/11/15 面试题
八项规定整改措施
2014/02/12 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
在校生证明
2015/06/17 职场文书
学生病假条范文
2015/08/17 职场文书