新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Dot NET,C#,ASP,VB 』 → ASP编程入门进阶(连载)[转帖] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 65967 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: ASP编程入门进阶(连载)[转帖] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     Qr 帅哥哟,离线,有人找我吗?
      
      
      威望:9
      等级:博士二年级(版主)
      文章:4392
      积分:29981
      门派:XML.ORG.CN
      注册:2004/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 Dot NET,C#,ASP,VB 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客楼主
    发贴心情 

    (十五):组件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中

    <OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="MSWC.Counters"></OBJECT>

    ----------------------------------------------
    没人帮忙,那就靠自己,自己才是最好的老师!本人拒绝回答通过站内短消息提出的问题!

    blog:http://Qr.blogger.org.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/1/14 13:38:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/10 13:50:35

    本主题贴数30,分页: [1] [2] [3]

     *树形目录 (最近20个回帖) 顶端 
    主题:  ASP编程入门进阶(连载)[转帖](3629字) - Qr,2005年1月14日
        回复:  需要操作系统的安装盘的(22字) - galen,2006年3月24日
        回复:  需要将windows xp professional service pack 2 CD ..(267字) - 串烧,2006年2月21日
        回复:  (十二)缺(8字) - Qr,2005年1月14日
            回复:  [B](十三):Ad & Content Rotator[/B]ASP的强大不仅仅局限于接受..(9020字) - Qr,2005年1月14日
                回复:  [B](十四):Browser & Linking[/B]Browser Capabilit..(6449字) - Qr,2005年1月14日
                    回复:  [B](十五):组件Counters[/B]该组件用于创建一个或多个计数器,这些计数器用于跟..(4411字) - Qr,2005年1月14日
                        回复:  [B](十六):FSO组件之驱动器操作[/B]FSO,正如UFO般令人激动、令人神往,当然更..(4195字) - Qr,2005年1月14日
                            回复:  [B](十七):FSO组件之文件夹操作[/B]操作完驱动器,接着就是来操作文件夹了。其中包括..(4476字) - Qr,2005年1月14日
                                回复:  [B](十八):FSO组件之文件操作(上)[/B]FSO中除了可以对驱动器、文件夹的操作以外..(4246字) - Qr,2005年1月14日
                                    回复:  [B](十八):FSO组件之文件操作(中)[/B]学会了FSO提取文件值,也学会了将信息输入..(7381字) - Qr,2005年1月14日
                                        回复:  [B](十八):FSO组件之文件操作(下)[/B]一,fso.GetFile 提取文件相..(2638字) - Qr,2005年1月14日
                                            回复:  [B](二十):ADO组件之插入数据记录[/B]简单的显示记录已经掌握,现在需要的就是通过A..(5899字) - Qr,2005年1月14日
                                            回复:  [B](二十):ADO组件之显示数据记录[/B]学习ASP的万里长征就快到终点了:等把AS..(7065字) - Qr,2005年1月14日
                                            回复:  [B](十九):ASP技巧累加(二)[/B]严格控制Session 可以将不需要Sess..(2901字) - Qr,2005年1月14日
        回复:  认识表单(7832字) - Qr,2005年1月14日
            回复:  [B](三):接触脚本程序[/B]有了前面的html中关于form的强化知识,是不是在想,下面..(10511字) - Qr,2005年1月14日
                回复:  [B](四):内置对象Request[/B]系统学习ASP,就是先从ASP的几大内置对象开始的..(7333字) - Qr,2005年1月14日
                    回复:  [B](五):内置对象Response[/B]通过对Request对象的学习,可以了解到,Req..(8632字) - Qr,2005年1月14日
                        回复:  [B](六):Cookies讲座[/B]什么是 Cookie?Cookie 其实是一个标签,经..(6636字) - Qr,2005年1月14日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    93.750ms