ASP編程入門進階(十五):組件Counters

來源:互聯網
上載者:User

該組件用於建立一個或多個計數器,這些計數器用於跟蹤某一網頁或某一網站訪問次數的資訊。你只能建立一個計數器組件,但該組件可以有多於一個的計數器。

一旦建立了計數器,它將一直持續下去直到被刪除為止。

計數器不會在一個事件比如訪問一頁時自動增加。你必須使用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>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.