程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP編程入門進階(十五):組件Counters

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

編輯:關於ASP編程
該組件用於創建一個或多個計數器,這些計數器用於跟蹤某一網頁或某一網站訪問次數的信息。你只能創建一個計數器組件,但該組件可以有多於一個的計數器。

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

計數器不會在一個事件比如訪問一頁時自動增加。你必須使用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>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved