這篇文章主要介紹了使用JavaScript制作一個簡單的計數器的方法,用于計算網頁用戶的來訪次數,需要的朋友可以參考下
設計思想
該方法的關鍵是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等多種平臺。另外,此計數器不同于一般意義上的訪客計數器,專門用于記錄某一訪客對某一網站的訪問次數。
|
新聞熱點
疑難解答
圖片精選