使用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 相关文章推荐
通过下拉框的值来确定输入框是否可以为空的代码
Oct 18 Javascript
JS字符串截取函数实例
Dec 27 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
May 02 Javascript
js图片自动轮播代码分享(js图片轮播)
May 06 Javascript
javascript实现将文件保存到本地方法汇总
Jul 26 Javascript
javascript性能优化之事件委托实例详解
Dec 12 Javascript
详谈javascript异步编程
Feb 21 Javascript
在小程序Canvas中使用measureText的方法示例
Oct 19 Javascript
Angular6 Filter实现页面搜索的示例代码
Dec 02 Javascript
pm2发布node配置文件ecosystem.json详解
May 15 Javascript
微信小程序实现轨迹回放的示例代码
Dec 13 Javascript
jQuery实现视频展示效果
May 30 jQuery
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中调用JAVA
2006/10/09 PHP
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
php实现头像上传预览功能
2017/04/27 PHP
自制PHP框架之设计模式
2017/05/07 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
JS 去除Array中的null值示例代码
2013/11/20 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
js正则匹配多个全部数据问题
2019/12/20 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
python分割列表(list)的方法示例
2017/05/07 Python
用python批量移动文件
2021/01/14 Python
迪拜航空官方网站:flydubai
2017/04/20 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
什么是方法的重载
2013/06/24 面试题
电子商务毕业生求职信
2013/11/10 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
教导主任个人总结
2015/03/03 职场文书
员工聘用合同范本
2015/09/21 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
高三数学教学反思
2016/02/18 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫