使用JavaScript制作一個簡單的計數(shù)器的方法
設(shè)計思想
該方法的關(guān)鍵是Cookie技術(shù)和動態(tài)圖像特性的綜合運(yùn)用。使用Cookie,可以在用戶端的硬盤上記錄用戶的數(shù)據(jù),下次訪問此站點時,即可讀取用戶端硬盤的Cookie,直接得知來訪者的身份和訪問次數(shù)等有關(guān)信息。JavaScript中通過document.cookie屬性訪問Cookie,這個屬性包括名字、失效日期、有效域名、有效URL路徑等。用等號分開的名字和其值是Cookie的實際數(shù)據(jù),本例中用來存儲該訪問者訪問該頁面的次數(shù)。通過把Web頁中的圖像映射到一個Images數(shù)組,一定條件下修改該數(shù)組項的特性,可以實現(xiàn)動態(tài)圖像顯示。本例中,首先預(yù)載入一組圖像,每次調(diào)用該Web頁時,隨機(jī)產(chǎn)生新的一組圖像,通過覆蓋原圖像實現(xiàn)動態(tài)的趣味性效果。
源程序count.html
< html>
< head>
< meta http-equiv=″Content-Type″
content=″text/html; charset=gb2312″>
< title>趣味計數(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){
//若是該訪客的第一次訪問,將計數(shù)器值賦1,否則加1累積
var wwhcount=getcookie(′wwhcount′);
if (wwhcount==null){
wwhcount=1;
}
else{wwhcount++;}
setcookie(′wwhcount′,wwhcount,exp);
return countdisp(wwhcount)
}
function countdisp(countvar){
//實現(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){
//存儲該訪客計數(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ù),實現(xiàn)計數(shù)器的動態(tài)圖像顯示
count();
< /script>
< /body>
< /html>
注意事項
由于使用了JavaScript語言,因此該方法具有與應(yīng)用平臺的無關(guān)性,可以適用于Unix、Windows等多種平臺。另外,此計數(shù)器不同于一般意義上的訪客計數(shù)器,專門用于記錄某一訪客對某一網(wǎng)站的訪問次數(shù)。
相關(guān)文章
javascript處理a標(biāo)簽超鏈接默認(rèn)事件的方法
這篇文章主要介紹了javascript處理a標(biāo)簽超鏈接默認(rèn)事件的方法,涉及event.preventDefault()方法阻止默認(rèn)事件的使用技巧,需要的朋友可以參考下2015-06-06
Javascript中 關(guān)于prototype屬性實現(xiàn)繼承的原理圖
Javascript中關(guān)于prototype屬性實現(xiàn)繼承的原理圖2013-04-04
JavaScript的Polymer框架中dom-repeat與VM的相關(guān)操作
這篇文章主要介紹了JavaScript的Polymer框架中dom-repeat與VM的相關(guān)操作,Polymer是由Ggoogle開發(fā)的Web UI相關(guān)框架,需要的朋友可以參考下2015-07-07
JavaScript indexOf方法入門實例(計算指定字符在字符串中首次出現(xiàn)的位置)
這篇文章主要介紹了JavaScript indexOf方法入門實例,indexOf方法用于計算指定字符在字符串中首次出現(xiàn)的位置,需要的朋友可以參考下2014-10-10

