ASP编程入门进阶(十五):组件Counters
2018-09-06 12:38
该组件用于创建一个或多个计数器,这些计数器用于跟踪某一网页或某一网站访问次数的信息。你只能创建一个计数器组件,但该组件可以有多于一个的计数器。
一旦创建了计数器,它将一直持续下去直到被删除为止。
计数器不会在一个事件比如访问一页时自动增加。你必须使用Set和Increment方法人工的设置或增长计数器。
计数器不受作用域限制。一旦创建了一个计数器,那么站点上的任何页都可以检索和控制它的值。
一、Counters.Set & Counters.Get
Counters.Set主要用来设置记数初始值,Counters.Get则是用来提取记数的值。
1,counts_set.asp
<%
Counters.Set cnbruce,10
Counters.set it365cn,20
Counters.set blueidea,30
%>
共有<%= Counters.Get(cnbruce) %>次访问网站 <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”的记数值了。
二、rement
该方法的功能是:记数每次加一。在上例中你刷新页面,记数是不会添加的,所以现在换用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>
文章标题:ASP编程入门进阶(十五):组件Counters
文章链接:http://soscw.com/index.php/essay/10523.html