這篇文章主要介紹了使用JavaScript制作一個(gè)簡(jiǎn)單的計(jì)數(shù)器的方法,用于計(jì)算網(wǎng)頁(yè)用戶的來(lái)訪次數(shù),需要的朋友可以參考下
設(shè)計(jì)思想
該方法的關(guān)鍵是Cookie技術(shù)和動(dòng)態(tài)圖像特性的綜合運(yùn)用。使用Cookie,可以在用戶端的硬盤上記錄用戶的數(shù)據(jù),下次訪問此站點(diǎn)時(shí),即可讀取用戶端硬盤的Cookie,直接得知來(lái)訪者的身份和訪問次數(shù)等有關(guān)信息。JavaScript中通過(guò)document.cookie屬性訪問Cookie,這個(gè)屬性包括名字、失效日期、有效域名、有效URL路徑等。用等號(hào)分開的名字和其值是Cookie的實(shí)際數(shù)據(jù),本例中用來(lái)存儲(chǔ)該訪問者訪問該頁(yè)面的次數(shù)。通過(guò)把Web頁(yè)中的圖像映射到一個(gè)Images數(shù)組,一定條件下修改該數(shù)組項(xiàng)的特性,可以實(shí)現(xiàn)動(dòng)態(tài)圖像顯示。本例中,首先預(yù)載入一組圖像,每次調(diào)用該Web頁(yè)時(shí),隨機(jī)產(chǎn)生新的一組圖像,通過(guò)覆蓋原圖像實(shí)現(xiàn)動(dòng)態(tài)的趣味性效果。
源程序count.html
- < html>
- < head>
- < meta http-equiv=″Content-Type″
- content=″text/html; charset=gb2312″>
- < title>趣味計(jì)數(shù)器< /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){
- //若是該訪客的第一次訪問,將計(jì)數(shù)器值賦1,否則加1累積
- var wwhcount=getcookie(′wwhcount′);
- if (wwhcount==null){
- wwhcount=1;
- }
- else{wwhcount++;}
- setcookie(′wwhcount′,wwhcount,exp);
- return countdisp(wwhcount)
- }
- function countdisp(countvar){
- //實(shí)現(xiàn)隨機(jī)顯示,不足6位以0補(bǔ)全,可以自己調(diào)整顯示位數(shù)
- 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){
- //獲取該訪問者的已訪問次數(shù)
- 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){
- //存儲(chǔ)該訪客計(jì)數(shù)器的數(shù)值
- 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){
- //使該信息行失效,刪除該用戶關(guān)于訪問次數(shù)的信息
- var exp=new Date();
- exp.setTime(exp.getTime()-1);
- var cval=getcookie(name);
- document.cookie=name+″=″+cval+″;expires=″+exp.toGMTString();
- }
- < /script>< /p>
- < ! --預(yù)載入圖像數(shù)組-->
- 您是第 < 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″>
- //調(diào)用count()函數(shù),實(shí)現(xiàn)計(jì)數(shù)器的動(dòng)態(tài)圖像顯示
- count();
- < /script>
- < /body>
- < /html>
注意事項(xiàng)
由于使用了JavaScript語(yǔ)言,因此該方法具有與應(yīng)用平臺(tái)的無(wú)關(guān)性,可以適用于Unix、Windows等多種平臺(tái)。另外,此計(jì)數(shù)器不同于一般意義上的訪客計(jì)數(shù)器,專門用于記錄某一訪客對(duì)某一網(wǎng)站的訪問次數(shù)。
新聞熱點(diǎn)
疑難解答
圖片精選