您的位置:首页精文荟萃软件资讯 → 用ASP技术得到主页被访问次数的三种方法

用ASP技术得到主页被访问次数的三种方法

时间:2004/10/7 19:15:00来源:本站整理作者:蓝点我要评论(0)


            
             
              
             
            

               
               

            



            

用ASP技术得到主页被访问次数的三种方法


            华中理工大学自动控制工程系  周茜 田忠和
   ASP 是Microsoft Active Server Pages 的缩写,即动态服务器主页。
它是服务器端脚本编写环境,在Web服务器上解释脚本,可以组合HTML页、脚本命令和ActiveX组件来创建动态、交互式、高效率的 Web 页和基于 Web 的功能强大的服务器应用程序。ASP 可以在Microsoft 的任何 Web服务器上发布各种动态数据,而且ASP应用程序很容易开发和修改。
     ASP技术之所以容易,很重要的原因是 ASP 技术充分利用各种功能强大的内嵌对象和ActiveX组件来执行任务。ActiveX组件是包含在动态链接库(.dll)或可执行文件(.exe)中的可执行某项或一组任务的代码。因为组件可以执行公用任务,所以不必自己去创建执行这些任务的代码,可以直接利用组件作为脚本和基于 Web 应用程序的基本构造块。只要知道如何访问和控制组件所提供的对象,即使是编写脚本的新手,也可以在不了解组件运作方式的情况下编写脚本。
要使用组件提供的对象,首先要创建对象的实例并将这个新的实例分配变量名。使用 ASP 的 Server.CreateObject 方法可以创建对象的实例。然后,使用脚本语言的变量分配指令为对象实例命名。创建对象实例时,必须提供实例的注册名称(PROGID)。
对于一个 Web 站点,我们通常需要记录其被访问的次数。本文针对这个问题,提出三种方法供参考。
  
<一>利用Page Counter 组件
    Page Counter 组件可以创建 PageCounter 对象,以记录和显示 Web 页被打开的次数。每隔一定的时间,此对象将访问次数写入文本文件以便数据不会在服务器关机时丢失。Page Counter 组件使用一个内部 Central Management 对象来记录应用程序中的每一页被打开的次数。当使用 Server.CreateObject 方法在一页上创建 PageCounter 对象的实例时,此对象从 Central Management 对象中获取指定Web页的当前访问次数后,就可以使用此对象已有的方法来操作了。
  
语法:<% Set oVar = Server.CreateObject("MSWC.PageCounter") %>
参数:oVar   指定通过调用 Server.CreateObject 创建的 PageCounter 对象      
             的名称。
方法
Hits    显示指定的 URL 被打开的次数。  
PageHit 增加访问次数。
Reset   将指定的页的访问次数设置为 0。
  
注意:PageCounter 对象不是内嵌对象,所以必须进行注册。当此对象被编译或注册时,页计数器向注册表添加 MSWC.PageCounter 键。该键被添加到 HKEY_CLASSES_ROOT 下且包括下列命名值。
2.File_Location  字符串,
   指定记录访问次数的文件的路径名和文件名。默认的文件名为 hitcnt.cnt。此文件存放在 Windows 目录下。
2.Save_Count     DWORD 型,
   指明在访问次数被存储到 Hit Count Data 文件前的访问次数。注意,这是访问的总数而不是每一页的访问次数。默认值为 25。
  
下例使用 PageCounter 对象跟踪访问者的个数并发送特定的消息。
  
<% Set MyPageCounter = Server.CreateObject("MSWC.PageCounter")
   HitMe = MyPageCounter.Hits
%>
   您是第<%= HitMe %>位访问者。
  
<二>利用 File Access 组件
    因为 Page Counter 组件并没有和IIS 一起安装,必须另行安装方可使用。若没有安装 Page Counter 组件,则可以采用File Access 组件。 File Access 组件可用来访问计算机文件系统的方法和属性。用户可以使用 File Access 组件创建 FileSystemObject 对象,该对象提供用于访问文件系统的方法、属性和集合。
以下的实例说明了如何记录被访问的次数。
  
  <%                                          ‘(1)
    Do While  Application("bar") = 1
       Application.Lock
       Application("bar") = 0
       Application.Unlock
  %>
  <%                                          ‘(2)
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set fr = fs.OpenTextFile("visitors.txt", ForReading,TristateFalse)
'表示 以只读模式、ASCII 格式打开文件 visitors.txt ,返回一个
'TextStream 对象 fr,visitors.txt保存的是被访问的次数。
     
         visitors = fr.Read(10)   
         fr.Close
         count = CLng(visitors)
         count = count + 1      '将被访问的次数加 1。
         visitors = CStr(count)  
     Set fw = fs.OpenTextFile("visitors.txt", 2,TristateFalse)
         fw.Write(visitors)     '将新的访问次数写人visitors.txt保存
         fw.Close   
%>
<%   Application.Lock                                     ‘(3)
     Application("bar") = 1
     Application.Unlock
    Exit Do
    Loop
%>
   欢迎您!
   您是第<%=count%>位访问者!
  
利用 File Access 组件实现记录被访问次数,要注意多用户的并发操作问题。如果多个用户同时进行链接,则可能出现错误。要防止这一现象,可以采用设置标志的方法,一次只有一个用户对文件 visitors.txt 进行读写操作.以上实例中的(1)、(3)段是完成此保护功能。这时用到了Application 的内嵌对象,下一节将专门讨论这一技术。
  
<三>利用 Application 内嵌对象
    内嵌对象的特殊性在于,它们在 ASP 页内生成且在脚本中使用它们前无须创建。可以使用 Application 对象在给定的应用程序的所有用户之间共享信息。基于 ASP 的应用程序同所有的 .asp 文件一样在一个虚拟目录及其子目录中定义。我们可以将值存储在 Application 集合中。存储在 Application 集合中的信息在整个应用程序中有效且具有应用程序作用域。这时要注意因为多个用户可以共享 Application 对象,所以必须要有 Lock 和 Unlock 方法以确保多个用户无法同时改变某一属性。
    下列示例使用应用程序变量 NumVisitors 存储某特定页被访问的次数。调用 Lock 方法是为了保证只有当前客户才能访问和更改 NumVisitors。调用 Unlock 方法之后,即可允许其他用户访问 Application 对象。
  
<%
   Application.Lock
   Application("NumVisitors") = Application("NumVisitors") + 1
   Application.Unlock
%>
   您是第<%= Application("NumVisitors") %> 位访问者!
  
   从上面的实例中可以看出,采用 Application 内嵌对象来记录访问次数是非常方便的。但是一旦服务器关机或重启动,则 Application("NumVisitors") 的值将恢复为0,这种情况也是不允许的。这时我们可以对其进行保护。仿照Page Counter 组件创建的 PageCounter 对象的功能,定期将Application("NumVisitors") 的值存入到一个指定的文件中。例如,每次对 Application("NumVisitors") 进行操作后,都利用 File Access 组件创建的对象保存新的值,具体方法可参照<二>的有关内容。
  
    以上三种方法都可以可靠地记录主页被访问的次数,繁易程度也是一目了然的。首选方法当然是利用Page Counter 组件,其次是利用Application 内嵌对象,辅以 File Access 组件。单独地利用 Application 内嵌对象或File Access 组件,都存在不可避免的缺点。 

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本