----------------------------------------------------------------------
----------
---- 訪客計數器作為網站不可缺少的部分,不僅可以記錄網站被訪問的次數,而且可
以通過生動有趣的設計來加強網頁的趣味性和可觀賞性,使訪客計數器成為網頁上的
一個風景。下面介紹兩種輕松設計趣味訪客計數器的方法,希望對大家有所幫助。
一、素材準備
---- 趣味訪客計數器是將計數器的設計與趣味性的顯示效果結合在一起,十種不同風
格的計數器隨機出現在網頁上,為相對靜止和嚴肅的網頁增加一些動態的效果和趣
味。第一次訪問時,計數器顯示的可能是紅色的靜態數字,第二次訪問時,計數器可
能變成了不斷翻轉的動畫形式,第三次訪問時,計數器可能又變成了由虛到實的虛幻
變化形式。為了實現這種效果,首先需要準備一些基本素材,即十種顯示類型的數字
圖像文件。可以用圖形編輯工具(如Photoshop、Animator等)根據自己的想象制
作,也可以直接從網上圖片庫下載,然后將這些數字圖像以
00.gif ...09.gif...90.gif...99.gif的形式存放在一個可讀取的目錄中,在下面
的例子中這些圖像文件存放在“http://localhost/images”中。這里gif文件命名
的原則是:第1位數字代表顯示類型,第2位數字代表數字值,如00.gif代表0型數字0
的gif文件,09.gif代表0型數字9的gif文件。
二、設計方法之一:利用JavaScript制作趣味計數器
---- 1.設計思想:
---- 該方法的關鍵是Cookie技術和動態圖像特性的綜合運用。使用Cookie,可以在
用戶端的硬盤上記錄用戶的數據,下次訪問此站點時,即可讀取用戶端硬盤的
Cookie,直接得知來訪者的身份和訪問次數等有關信息。JavaScript中通過
document.cookie屬性訪問Cookie,這個屬性包括名字、失效日期、有效域名、有效
URL路徑等。用等號分開的名字和其值是Cookie的實際數據,本例中用來存儲該訪問
者訪問該頁面的次數。通過把Web頁中的圖像映射到一個images數組,一定條件下修
改該數組項的特性,可以實現動態圖像顯示。本例中,首先預載入一組圖像,每次調
用該Web頁時,隨機產生新的一組圖像,通過覆蓋原圖像實現動態的趣味性效果。
---- 2.源程序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 >
---- 3.注意事項:
---- 由于使用了JavaScript語言,因此該方法具有與應用平臺的無關性,可以適用
于Unix、Windows等多種平臺。另外,此計數器不同于一般意義上的訪客計數器,專
門用于記錄某一訪客對某一網站的訪問次數。
二、設計方法之二:利用ASP技術制作趣味計數器
---- 1.設計思想:
---- ASP(動態服務器主頁)是微軟公司推出的用以取代CGI的新技術,是目前公認
的建立Windows NT動態站點最好的工具。ASP包含在IIS3.0中,它提供了一個在服務
器端的scripting環境,在站點服務器上執行,具有簡單、實用、高效等特點。ASP內
含五個內置的ActiveX服務器組件,包括:數據庫訪問組件(Database Access
component)、文件訪問組件(File Access component)、廣告輪播器組件(Ad
Rotator component)、內容鏈接組件(Content Linking component)、瀏覽器信息
組件(Browser Capabilities component).利用文件訪問組件,通過
FileSystemObject對象和 TextStream對象,可以提供讀寫服務器文件的功能,實現
訪客計數器功能。
---- 2.源程序count.asp:
< html >
< head >
< meta http-equiv="Content-Type"
content="text/html; charset=gb2312" >
< title >趣味計數器< /title >
< /head >
< body >
< p >
< %
dim out
countfile=server.mappath("aspcount.txt")
'定義一個服務器組件
set objfile=server.createobject("scripting.filesystemobject")
set out=objfile.opentextfile(countfile,1,false,false)
‘讀取數據
counter=out.readline
out.close
set objfile=server.createobject("scripting.filesystemobject")
set out=objfile.createtextfile(countfile,TRUE,FALSE)
‘暫時瑣定
application.lock
‘訪客次數加1
counter=counter+1
‘寫入數據
out.writeline(counter)
‘解鎖
application.unlock
out.close
% >
< script language="JavaScript" >
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";
}
}
< /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 >
< img 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(counter);
< /script >
< /body >
< /html >
---- 3.注意事項:
---- 該計數器只能運行于Windows環境,包括Windows NT Server 4.0(須安裝
IIS3.0)、Windows NT 4.0(須安裝Peer Web Services)、Windows 95(須安裝
Peer Web Services)。ASP文件擴展名以.asp表示,可以用常規的文本編輯器編輯,
也可以利用專門的輔助開發工具InterDev進行開發設計,而且該文件必須存放于具有
執行功能的目錄中。
---- 以上兩個程序都已通過調試,具體效果請訪問
http://www.lib.ytu.edu.cn/xxcxsmjs.html。