Posted: 2005/1月/07 10:54上午 | IP记录
|
|
|
统计访问者
在Active Server Pages中包括两个组件用来进行页面的计数统计。使用该组件,你就可以了解每一个页面的访问情况,可以在这个页面上直接显示, 或者用户自己需要的其它目的。
计数器组件
计数器组件用来统计一个页面被请求的次数,当然也可以用来统计其它东西,例如:统计站点访问者,统计广告点击次数,甚至统计用N etScape2.0访问的用户人数这样的细观信息。
你只需要创建一个这样的事例,而且一个这样的事例就可以提供很多个单独的计数器,这种划分是按照计数器名称进行的。
由于你只需要创建一个计数器组件,那么在Global.asa中进行这种创建是非常不错的主意,这样当你的网站开始运行时就只有 一个计数器对象的事例。
注意
对Global.asa的详细介绍参见本书的第17章。
下面是在Global.asa中进行这个事例创建的脚本:
<OBJECT RUNAT=Server SCOPE=」Application」 ID=」MyCount」
PROGID=」MSWC.Counters」></OBJECT>
微软的HTML<OBJECT>标记被用来创建一个名字为MyCount的范围是Application的计数器事 例。记住使用<OBJECT>对像要在Global.asa文件中的任何事件的脚本之外。一旦该事例被创建,你就可 以在整个application范围内使用其方法属性。
计数器组件有下面4个方法。下面将介绍每个方法的具体使用。
■Get(Counter Name).这个方法返回当前的计数器值,如果计数器不存在,则进行创 建并且赋值为0。
■Increment(Counter Name).对计数器进行加1操作,如果计数器不存在,则创建并且 赋初值为1。
■Remove(Counter Name).消除指定的计数器。
■Set(Counter Name, integer).这个方法有两个参数,第一个是计数器的名称,第二个是一个整数,你可以将当前计数器的值设定为该整数,同样对 于不存在的计数器也可以进行创建和赋值。
这个计数器对像在Global.asa中创建之后,就可以在你的Active server Pages中添加和减少独立的计数器,在一个页面中创建的计数器可以增加、减少,甚至移除到另一个页面上去。下面就是这么一个使 用计数器组件对特定页面进行访问次数统计的示例:
<HTML>
<HEAD><TITLE>某一页</TITLE></HEAD>
<BODY>
这个页面已经被浏览<%=MyCount.Increment(「PageCnt」) %>次
</BODY>
</HTML>
第一次调用该页面时,PageCnt计数器就被创建然后赋值为1,以后每次都会自动加1。
那么当服务器突然间以外关闭怎么办?你创建的计数器还会存在,因为这已经保存到Counters.txt文件中了。当服务器再度 开启,那么这个计数器又可以继续运行。
不过这么一个计数器确实看上去过于单薄,那么很多有点特点的计数器都是用图片文件的,下面是这样的一个例子:
<%
SUB ShowImageCnt(TheNum)
CntStr=CSTR(TheNum)
For I=1 to LEN(CntStr)
CntPart=MID(CntStr,I,1)
%>
<img src=」<%=CntPart %>.gif」 ALT=」<%=CntPart %>」>
<%
NEXT
END SUB
%>
<HTML>
<HEAD><TITLE>某一页</TITLE></HEAD>
<BODY>
这个页面已经被访问了<%ShowImgCnt MyCount.Increment(「PageCnt」) %>次。
</BODY>
</HTML>
这个active Server Pages也显示计数器,不过这里面用的是图片文件的显示,当然, 你首先需要有1.gif,2.gif,3.gif…9.gif,0.gif这样10个图片文件来显示10个数字。其中ShowI mageCnt子程序就是取出每一个数字然后找到相应图片文件显示出来,由于程序相当简单,不做过多解释。这些显示数字的图片文 件可以在很多地方自由下载,当然也可以自己去创作。
Page Counter组件
从名称上看似乎和前者没有什么区别,不过它的目的更加单一,是显示该页面打开次数。
注意
早期版本的Active Server Pages和IIS均不提供该组件,那么可以在 http://www.microsoft.com/iis下面进行下载。
Page Counter组件比上一个小节的Counter组件简单很多,它除了对页面点击次数进 行统计之外别无所用。下面是该组件的两个方法。
■Hits(Path)返回限定页面的点击次数,如果没有提供参数,则默认为当前页
■Reset(path)将该页面点击次数重置为0。
和Counter组件不同的是,你不需要在Global.asa中进行什么变动,只是需要在要进行调用的页面上创建该事例,然后 使用就可以了。
下面这个例子:
<HTML>
<HEAD><TITLE>页面计数器示例</TITLE></HEAD>
<BODY>
<%
Set MyHits=Server.CreateObject(「MSWC.PageCounter」)
%>
这个页面被访问了<%=MyHits.hits %>次
</Body>
</HTML>
这种调用过程极为简单,并显示该页被打开次数,请注意这里面的hits方法没有调用参数,因为是当前页的计数值。
总结
本章开始介绍如何进行随机广告的处理,然后是随机内容的显示,最后介绍计数器应用的两个组件,相信对读者进行自己网站设计有所助 益。
|