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

ASP
ASP正则表达式技巧
ASP Access实现网站计数器(访问量)
ASP新闻分页,将一篇过长的文章分页,生成静态页面
一些关于asp 购物车的想法
一个sql查询器,自动画表格填字段
ASP实现文件直接下载的代码
把网页中的(电话,qq等数字)生成图片的ASP程序
asp长文章用分页符来分页显示
Asp函数介紹(37个常用函数)
ASP中的面向对象类
分页实现方法的性能比较
asp ajax跨域提交数据
asp修改文件和文件夹的名字的代码
ASP 多关键词查询实例代码
asp被杀毒软件误删的解决方法
asp 多关键词搜索的简单实现方法
asp 根据IP地址自动判断转向分站的代码
asp dictionary对象的用法
ASP 千万级数据分页的存储过程
ASP隐藏真实文件的下载功能实现代码

ASP 3.0高级编程(二十五)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 112 ::
收藏到网摘: 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