快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

ASP编程入门进阶(十五):组件COUNTERS

该组件用于创建一个或多个计数器,这些计数器用于跟踪某一网页或某一网站访问次数的信息。你只能创建一个计数器组件,但该组件可以有多于一个的计数器。

一旦创建了计数器,它将一直持续下去直到被删除为止。

计数器不会在一个事件比如访问一页时自动增加。你必须使用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中
返回类别: 教程
上一教程: ASP会话功能具体解释
下一教程: ASP技术在论坛中的运用(四)

您可以阅读与"ASP编程入门进阶(十五):组件COUNTERS"相关的教程:
· ASP编程入门进阶(十六):FSO组件之驱动器操作
· ASP编程入门进阶
· ASP编程入门进阶
· ASP编程入门进阶(七):内置对象SERVER
· ASP组件高级入门与精通系列之二
    微笑服务 优质保证 索取样品