细说ASP中Counters 组件
概述
Counter 组件创建一个可创建、存储、增长和检索任何数量的独立计数器的 Counters 对象。
计数器是一个包含整数的持续值。可以使用 Counters 对象的 Get、Increment、Set 和 Remove 方法控制计数器。一旦您创建了计数器,它将一直持续下去直到被删除为止。
计数器不会在一个事件比如访问一页时自动增加。您必须使用 Set 和 Increment 方法人工的设置或增长计数器。
计数器不受作用域限制。一旦您创建了一个计数器,那么您的站点上的任何页都可以检索和控制它的值。例如,若您在一个名为 Page1.asp 的页上显示和增加一个叫做 hits 的计数器的值,而又在另一个叫做 Page2.asp 的页上增加 hits 的值,则两页将增加同一计数器。若您访问 Page1.asp 时,计数器的值增加到 34,则访问 Page2.asp 会将 hits 增加到 35。下一次访问 Page1.asp,hits 将增加到 36。
所有计数器都存储在一个单独的名为 counters.txt 的文本文件中,它同 counters.dll 文件存储在同一目录下。
文件名
counters.dll Counters 组件。
counters.txt 该文件在一个站点上存储所有独立的计数器。counters.txt 是一个 UTF8 编码文件。您可以在计数器名称中使用任何 Unicode 字符。
语法
将下列内容加入到 global.asa 文件中在您的服务器上可一次性创建 Counters 对象:
<OBJECT
RUNAT=Server
SCOPE=Application
ID=Counter
PROGID="MSWC.Counters">
</OBJECT>
注册表项
无。
注释
在您的站点上仅创建一个 Counters 对象。这一单个 Counters 对象可以创建任意数量的独立计数器。
注意 对于 Windows? 95 上的 Personal Web Server,已在默认的虚拟目录下的 global.asa 文件 中指定了一个 Counters 组件。可以通过调用 Counters.Get、Counters.Increment、Counters.Remove 和 Counters.Set 使用组件创建的 Counters 对象,就好象它是内建的一样。您不可以创建 Counters 对象的其他实例。
方法
Get 返回计数器的值。
Increment 计数器的值加一。
Remove 从 counters.txt 文件中删除计数器。
Set 将计数器的值设为一个特定的整数。
示例
通过将 ID 属性设置为 Counter,在 global.asa 文件中创建 Counters 对象的实例:
<OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="MSWC.Counters">
</OBJECT>
然后就可以在某一页上使用 Counters 对象创建全部所需的计数器:
There have been <%= Counter.Increment('defaultPageHits') %> to this site.
然后在另一页上就可以使用下列方法增加计数器的值:
You are visitor number<%= Counter.Increment('LinksPageHits') %> to this page.
注意 该组件可从包含 IIS IIS Resource Kit 的 CD 中得到。
Get方法
Get 方法根据计数器的名称返回此计数器的当前值。若此计数器不存在,则该方法创建它并将其置为 0。
语法
Counters.Get(CounterName)
参数
CounterName
包含计数器名称的字符串。
示例
用 <%= Counters.Get(CounterName) %> 可显示计数器的值。用 <% countervar = Counters.Get(CounterName) %> 将计数器的值赋给一个变量。
下列脚本显示关于所喜爱的颜色的民意测验的投票记分。
<% If colornumber = "1" Then
Counters.Increment("greencounter")
Else
If colornumber = "2" Then
Counters.Increment("bluecounter")
Else
If colornumber = "0" Then
Counters.Increment("redcounter")
End If
End If
End If %>
<P>Current vote tally:
<P>red: <% =Counters.Get("redcounter") %>
<P>green: <% = Counters.Get("greencounter") %>
<P>blue: <% = Counters.Get("bluecounter") %>
Increment方法
Increment 方法根据计数器的名称,将该计数器的值加 1,并返回计数器的新值。若计数器不存在,此方法将创建该计数器并将其值设为 1。
语法
Counters.Increment(CounterName)
参数
CounterName
包含计数器值的字符串。
示例
使用 <% Counters.Increment(CounterName) %> 可增加计数器的值。使用 <%= Counters.Increment(CounterName) %> 可增加和显示计数器的值。
为了获取计数器的值,可使用 Counters.Get。要将计数器的值设为一个特殊值,请使用 Counters.Set。
下列代码实现联机页访问计数器。
<P>There have been <%= Counters.Increment("hits") %> visits to this Web page.
</P>
在上面的示例中,每次客户端向服务器发出页请求时,都使用 Counters.Increment 将计数器的值加 1。
Remove方法
Remove 方法根据计数器的名称,从 Counters 对象和 counters.txt 文件中删除计数器。
语法
Counters.Remove(CounterName)
参数
CounterName
包含计数器名称的字符串。
示例
下列代码从 counters.txt 文件中删除计数器 hitscounter 。
<% Counters.Remove(hitscounter) %>
Set方法
Set 方法根据计数器的名称和一个整数参数,将计数器设置为该整数值,并返回此新值。若该计数器不存在,则 Counters.Set 创建计数器并将其值设为这一整数。
要获取计数器的值,可使用 Counters.Get。要使计数器的值加一,可使用 Counters.Increment