当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP 3.0高级编程(二十五)

ASP
asp生成三维饼图的函数
ASP下的简洁的多重查询的方法与函数 真不错
发一个ASP的ADODB类代码
A利用ASP小偷和Google实现在线翻译功能的代码
ASP类型网站结合动网论坛会员的方法
Asp下实现多表单域无组件文件上传的实例
asp制作中常用到的函数库集合
易心asp分页类 v1.0
asp中xmlhttp组件发包
检测是否为数字类型的asp代码
可以获得文件的文件名的asp函数
用asp实现访问远程计算机上MDB access数据库文件的方法
用ASP实现写IIS日志的代码
asp在IE浏览器中下载服务端上的各类文件的实现方法
asp汉字中文图片验证码的实现代码
asp WAP获取手机终端信息的一段代码
asp取得数组中的最大值的方法
用asp实现的截取指定格式字符串的代码
asp jmail发邮件 详细解析
ASP编程中连接数据库和数据库操作的常用代码

ASP 3.0高级编程(二十五)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 131 ::
收藏到网摘: n/a

  6.2.4 Counters组件
       Counters组件能用于创建、存储、递增和检索每个计数器的值。不要把它和本章后面将要介绍的Page Counter组件混淆,Counters组件能用于支持任何种类数据的统计。
       一个计数器含有一个整数值,能通过Counters组件的方法进行运算。使用Set方法设置计数器的指定值,用Get方法检索计数器中的值,使用Increment方法使计数器的值加1,使用Remove方法删除一个计数器。所有的计数器的值存储在一个名为Counters.txt的文本文件中,可在Counters.dll组件所在的目录中找到该文件。
1.  Counters组件的成员
Counters组件提供了用于维护每个计数器组件中数值的四个方法,如表6-4所示:
表6-4  Counters组件方法及说明
方 法
说 明

Get(counter_name)
返回指定计数器的当前值,如果此计数器先前没有创建,道德创建并设置成0,其返回值为0

Increment(counter_name)
增加指定计数器的当前值,如果此计数器先前没有创建,首先创建并设置为1

Remove(counter_name)
删除指定的计数器

Ser(counter_name,value)
把指定计数器的值设置成参数value提供的整数值,如果此计数器先前没有创建,先创建并设定为指定值

2.  使用Counters组件
由于Counters.txt文件仅有一个所有组件实例都能访问的拷贝。因此,应该只创建单个的Counters组件实例,并且使之对Web网站的所有页面都是可用的,实现这一点的常用方法是在缺省Web站点根目录下的global.asa文件中创建一个应用程序范围的实例。
采用下面程序:
<!-- declare instance of the ASP Counters component with application-level scope
-->
<OBJECT ID="objCounters" RUNAT="Server" SCOPE="Application"
PROGID="MSWC.Counters">
</OBJECT>
可以使用Counters组件对需要完成的任务创建一个新的计数器。在下面的程序中,给出了有三项选择的调查问题,并对每一种选择的回答次数进行了统计,当使用者提交包含三项选择的窗体后,将调入这个页面。假设选项通过点击SUBMIT按钮的cmdYes、cmdNo和cmdMaybe来选择,其对应值分别是“是”、“否”和“可能”。
<% 'in VBScript”
If Request.Form("cmdYes") = "Yes" Then objCounter.Increment("Response_Yes")
If Request.Form("cmdNo") = "No" Then objCounter.Increment("Response_No")
If Request.Form("cmdMaybe") = "Maybe" Then
       objCounter.Increment("Response_Maybe")
%>
如果这是第一次收到一个指定的响应,程序将创建一个新的计数器并自动初始化为1。
计数器在使用范围上没有限制,因为Counters对象创建在文件global.asa中,这意味着在虚拟应用程序或Web网站中创建的任何一个页面中都是可用的,所以这个“调查计数器”可用在应用程序的任何页面上,记住单个的Counters对象能提供所需的许多独立计数器,不需要创建很多Counters对象实例。
在前面的Ad Rotator组件页面示例中,研究了如何使用Counters组件存储每个广告主的点击次数,也可以在页面中使用Counters组件的Get方法显示当前值。
Wrox Press: <B><% = objCounters.Get("wrox") %></B><BR>
Stonebroom: <B><% = objCounters.Get("stonebroom") %></B><BR>
Xtras: <B><% = objCounters.Get("xtras") %></B><BR>
ComponentSource: <B><% = objCounters.Get("compsrc") %></B><BR>
Four CDs: <B><% = objCounters.Get("fourcds") %></B><BR>
Lunar: <B><% = objCounters.Get("lunar") %></B><BR>
每次加载页面时,都自动更新计数器的当前值。然而页面也包含有一些控件能调用Counters组件的其他两个方法,即删除一个计数器(相当于将其设置为0)和将计数器设置成一个指定数值,如图6-6所示:

图6-6  Counters组件的使用演示
这些控件在一个<FORM>上,点击任何一个小的空白按钮时,此窗体便提交给同一个页面,方法与本章中的所有页面所用的几乎一样。下面的程序是为Remove方法创建控件的HTML代码。
<FORM ACTION="<% = Request.ServerVariables("SCRIPT_NAME") %>" METHOD="POST">

<INPUT TYPE="SUBMIT" NAME="cmdRemove" VALUE="&nbsp;&nbsp;&nbsp;">
&nbsp; Counter.Remove ("
<SELECT