ASP中设计网站计数器的四种不同方法及其比较

  • 格式:pdf
  • 大小:102.39 KB
  • 文档页数:2

第9卷第4期 20o7年12月 黄冈职业技术学院学报 Journal of Huanmmn ̄Polytechnic vd.9 No.4 Dec.姗 

ASP中设计网站计数器的四种不同方法及其比较 

陈金莲 

(黄冈职业技术学院 湖北 黄冈438(}02) 

摘要:计数器是几乎每一个网站的要素,在ASP中,设计计数器有多种不同6qA-法,每种方法都有各自的优缺点及适 

用范围。本文从多个方面对四种方法进行了比较,帮助读者在作网站计数器时能根据实际情况作出正确的选择。 

关键词:ASP;网站;应用程序;计数器;组件 

中图分类号:TF393.09 文献标识码:A 文章编号:1672一lo47(20cr7)o4—0028—02 

Four diferer ̄methods and their o0咖 l—s锄of d‘ a web site伽 in ASP 

Chert Jin——lian 

(Huanggang Polytechnic College Huanggang 438002 Hubei) Abstract:Counter is a vital element of a web site.In ASP,there are many diferent methods to design a counter,and each method 

has its OWltl advantages and disadvantages and using scope.This paperⅡ much comparison about these four methods from various as— 

pe ̄ts,which help leaders make right choices according to their actual situation to design a web site counter. 

Keywords:ASP;Web site;Application program;Counter;Component 

计数器是用来统计网站访问量的一段程序,访问量可 

以反映出一个网站或其中的一个网页的受欢迎程度或影响 

力,所以几乎每一个网站都会用到这种程序段。 

在ASP中,可以用四种不同的方法为网站设计计数器, 

每种方法都有各自的优缺点及适用范围。很多的网站设计 

人员,特别是初学者对到底该使用哪种方法是非常模糊的, 

本人根据多年的教学经验现总结归纳如下,以供各位设计 

者参考。 

第一种方法,利用全局文件globa1.asa及application对 

象和session对象。 globa1.asa文件位于应用程序的根目录下,在该文件中 

对applicatlon-onstart和session.onstaxt两个过程编程即可。以 

下是程序示例: 

<script language=“VBScfipt”runat=“server”> 

sub application-onstart 

application.1ock application(“all”1=0 

application.unlock 

收稿日期:20∞一09—28 作者简介:陈金莲。女,黄冈职业技术学院计算机科学与技术系讲师。 

・28・ end sub sub session.onstart 

application.1ock 

application(“all'’)=application(“all”)+l 

application.unlock 

end sub 程序说明:事件application-onstart发生于网站中的任何 

页面第一次被访问时,以后便不再发生,在该事件中给“访 问总人数”变量a】l赋了初值0;事件session-onstart发生于任 

何用户访问任何页面时,在该事件中对访问总人数变量a】l 

累加了1。 这种方法设计出的计数器是对整个站点而言的,即统 

计的是站点中所有页面的总访问量,也只有这种方法能实 

现这种统计效果。优点是:一旦web服务器启动,便自动开 

始计数,且计数器中的数据可在任何页面中输出;缺点是: 

一旦服务器由于某种原因停止后重新启动,计数器便清0, 

这对很多网站而言显然是不合理的,当然这个问题可以通 

过对applieation-o

nend事件进一步编程来解决;但是这种方 维普资讯 http://www.cqvip.com 第4期 ASP中设计网站计数器的四种不同的方法及比较 第9卷 

法因不能统计某个页面的访问量,而不便于网站维护人员 

取得用户的喜好信息。 第二种方法,利用数据库,即将计数值存于数据库表 

中。 实现步骤如下: 

1、先建一数据库,数据库中建一个数据表,表中设计一 

个计数字段,该字段初始值为O; 

2、在需要统计访问量的页面程序中建立与上述数据库 

的连接,并用SQL命令对表中的计数字段进行更新,即每当 

页面被访问时,就将字段值加1,最后在页面中输出该值。 

关键代码如下: 

set db=createobject(“adodb.connection”) db.open“……”省略号为一连接字符串,不同类型的 

数据库连接字符串不一样 

db.execute(“update表名set字段名=字段名+1”) 

setI'8=db.execute(“select*from表名”) 

麟p0rlse. te(Is(“字段名”)) 

这种方法设计的计数器能统计某个页面的访问量,当 

然也可以将多个页面的计数值置于同一表中的不同字段 

中,从而实现用同一表对多个页面的访问量进行统计。其 

优点是不论服务器是否停止,计数值都不会丢失,因为计数 

值是存于数据库中的,除非数据库崩溃。缺点是在需要统 

计访问量的页面中要建立与数据库的连接,并对表存取,这 

增加了程序的代码长度从而降低了页面的浏览速度(与数 

据库的连接比较费时间)。 

第三种方法,利用文件存取组件filesystemobject。 

实现步骤: 

1、先建一文本文件,文件中存储初值O; 2、在需要输出计数值的网页程序中,利用文件存取组 

件读出文本文件中的值; 

3、将值累加1; 

4、输出该值; 

5、再利用文件存取组件将值写回文本文件中。 

关键代码如下: 

set fo=server.cre眦0bj。吐(“scripting.filesystemobject”)定 

义一文件系统对象 

set if=fo.opentextfrle(“文本文件的路径及文件名”,1) 

定义一文本文件对象 vlslt-number=elng(ff.readline)读出计数值 

visit-number=visit-number+1 

set tf=fo.opentextfile(“文本文件的路径及文件名”,2) 以可写方式打开文本文件 f.writeline(visit-number)将更新后的访问次数写回文本 

文件 

tf.dose response.write(“您是第”&visit-number&“位访客”) 

这种方法与第二种方法一样,是为某个网页设计计数 

器。优点:当服务器由停止到重新启动时,计数值不会归 

O;缺点:当需要为多个页面设置计数器时,需要多个文本文 

件,比较麻烦;另外,当进行网站移置时,文本文件必须同时 

移到相应的位置,否则计数器就会出错。 

第四种方法,利用计数器组件。 

计数器组件其实是文件存取组件的一种简化和封装的 

结果,利用计数器组件做网页的计数器非常简单方便,只需 

要在程序中加以下几行代码即可: 

set count=Server.creatobject(“ .pagecounter”)定义 

一个组件变量 

count.pagehit()将计数值加1 

visit-number=count.hits()取出计数器中的计数值 

response.wIite“您是第”&cstr(visit-number)&”位访客” 

输出计数值 

这种方法的优点是简单易行,服务器重启时,计数值不 

会归O,缺点与第二种方法和第三种方法一样,不能统计整 

个网站的总访问量。 

经过以上的比较我们不难发现,做网站计数器时,使用 

第一种方法和第四种方法的居多,因为只有第一种方法能 

统计整个网站的总访问量,而第四种方法与第二种和第三 

种的功能一样,统计的是某个网页的访问量,但第四种方法 

简单易行。当然,在实际使用时,每个人可以根据实际情 况、个人喜好和熟悉程度选用相应的方法。 

参考文献: 

[1]尚俊杰.网络程序设计一Asp[M].北京:清华大学 

出版社,2004. 

[2]荣钦科技主笔室.ASP入门与应用[M].北京:中国 

铁道出版社,20o1. 

[3]新电脑课堂.ASP编程篇[M].北京:电子工业出版 社.2005. 

[责任编辑:罗幼平] 

・29・

 维普资讯 http://www.cqvip.com