該組件用於建立一個或多個計數器,這些計數器用於跟蹤某一網頁或某一網站訪問次數的資訊。你只能建立一個計數器組件,但該組件可以有多於一個的計數器。
一旦建立了計數器,它將一直持續下去直到被刪除為止。
計數器不會在一個事件比如訪問一頁時自動增加。你必須使用Set和Increment方法人工的設定或增長計數器。
計數器不受範圍限制。一旦建立了一個計數器,那麼網站上的任何頁都可以檢索和控制它的值。
一、Counters.Set & Counters.Get
Counters.Set主要用來設定記數初始值,Counters.Get則是用來提取記數的值。
1,counts_set.asp
<% Set Counters=server.createobject("MSWC.Counters") Counters.Set "cnbruce",10 Counters.set "it365cn",20 Counters.set "blueidea",30 %> 共有<%= Counters.Get("cnbruce") %>次訪問 cnbruce.com 網站 <br> 共有<%= Counters.Get("it365cn") %>次訪問 it365cn.com 網站 <br> 共有<%= Counters.Get("blueidea") %>次訪問 blueidea.com 網站 <br> |
用法很簡單,首先“Counters=server.createobject("MSWC.Counters")”表示建立了一Counters組件的串連;Counters.Set "cnbruce",10表示記數了名為“cnbruce”的初始值10;Counters.Get("cnbruce")就表示提取名為“cnbruce”的記數值了。
二、Counters.Increment
該方法的功能是:記數每次加一。在上例中你重新整理頁面,記數是不會添加的,所以現在換用Increment方法。
2,counts_inc.asp
<% Set Counters=server.createobject("MSWC.Counters") %> 共有<%= Counters.Increment("cnbruce") %>次訪問 cnbruce.com 網站 <br> 共有<%= Counters.Increment("it365cn") %>次訪問 it365cn.com 網站 <br> 共有<%= Counters.Increment("blueidea") %>次訪問 blueidea.com 網站 <br> |
基本代碼相似,主要就是Counters.Increment的功能累加1。
根據累加可以做個簡單的投票系統了。
3,vote.asp
<% set Counters=server.createobject("MSWC.Counters") vote = Request.QueryString("site") Counters.Increment(vote) %> Vote for your Favorite Site: <FORM NAME="Voting for Sites" METHOD="GET" ACTION="vote.asp"> <input type="RADIO" NAME="site" VALUE="cnbruce">cnbruce <input type="RADIO" NAME="site" VALUE="it365cn">it365cn <input type="RADIO" NAME="site" VALUE="blueidea">blueidea <BR><INPUT TYPE="SUBMIT" VALUE="Submit Vote"> </FORM> Current Vote Tally:<BR> Cnbruce: <% =Counters.Get("cnbruce") %><BR> It365cn: <% = Counters.Get("it365cn") %><BR> Blueidea: <% = Counters.Get("blueidea") %><BR> |
功能是選擇某選項按鈕後提交,其對應的記數值則Counters.Increment
三、Counters.Remove
該對象則是起的記數清空的作用了。
4,remove.asp
<% set Counters=server.createobject("MSWC.Counters") vote = Request.QueryString("site") clear = Request.QueryString("clear") Counters.Increment(vote) If Not clear="" Then Counters.Remove("cnbruce") Counters.Remove("it365cn") Counters.Remove("blueidea") End If %> Vote for your Favorite Site: <FORM NAME="Voting for Sites" METHOD="GET" ACTION="remove.asp"> <input type="RADIO" NAME="site" VALUE="cnbruce">cnbruce <input type="RADIO" NAME="site" VALUE="it365cn">it356cn <input type="RADIO" NAME="site" VALUE="blueidea">blueidea <BR><INPUT TYPE="SUBMIT" VALUE="Submit Vote"> </FORM> Current Vote Tally:<BR> Cnbruce: <% =Counters.Get("cnbruce") %><BR> It365cn: <% = Counters.Get("it365cn") %><BR> Blueidea: <% = Counters.Get("blueidea") %> <FORM NAME="Clear Counters" METHOD="GET" ACTION="remove.asp"> <BR><INPUT TYPE="SUBMIT" VALUE="Clear the Counters" NAME="clear"> </FORM> |
通過今天的接觸可以總結出,一個簡單的記數系統已經有兩種方法:使用Application對象、使用Counters組件。但更多的還有採用FSO,或者是需要資料庫的就是後話慢慢談了。
在我們使用ASP組件時候還要注意一些東西:
當我們使用伺服器組件建立對象時,一般有兩種方法。比較常用的方法是用SERVER對象的CreateObject() 方法,象這樣:
SET NextLink = Server.CreateObject("MSWC.NextLink")
這種方法很好用,但是還有一種方法更節省系統資源。因為當你用Server.CreateObject()方法建立對象時,對象立即被載入,同時系統為這個對象分配好記憶體和其它資源。
第二種建立對象的方法是利用HTML的<OBJECT>標記,文法是這樣的:
<OBJECT Runat=Sever ID=NextLink ProgID="MSWC.NextLink" ></OBJECT>
利用<OBJECT>標記建立對象時,你要建立的對象不被馬上載入,而是等到這個對象的方法或屬性第一次被引用時才載入。這樣,我們就會節省一些資源。雖然不是很多,但是當你的系統每天要承受近百萬次的點擊時,這對節省伺服器資源就很有協助了。(Pine譯註)
如其所言:我們的Counters則可以放於global.asa中
<OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="MSWC.Counters"></OBJECT>