6.2.6 Content Rotator组件
Content Rotator组件像一个简化的Ad Rotator组件,需要提供一种内容调度文件(Content Schedule File)。该文件仅是一种包含文本段和HTML代码段的文本文件,Content Rotator组件可在页面中自动显示其中的一个。调度表文件可以包括任何数量的文本内容条目,并可规定比率,用以控制在返回网页中每个条目的显示频率。
1. 内容调度文件
内容进度文件的结构比Ad Rotator的调度文件简单,仅需提供要使用的各个文本字符串的列表,由前面加两个百分号(%%)的语句行说明。为了设置每个条目的比率(决定它出现在返回页面中的频率),在双百分号的后面添加了一个数字,其后还可跟一对前向斜线符(//)添加注释。如:
%% 3 // This is the first entry in the schedule text file
For more information, mail us at
<A HREF=mailto:feedback@wrox.com>Wrox Press</A>
%% 4 //This is a multi-line text string
<H4>Wrox Press</H4>
<UL>
<LI> Language Primers
<LI> Advanced Programming
<LI> Internet Applications
</UL>
%% 2
Visit us on the <A HREF="http://www.wrox.com">World Wide Web</A>
这个例子说明了可以用于网页中的三个文本字符串,比率分别是3、4和2,所以条目将以3/9、4/9和2/9的频率出现。注意(和Ad Rotator组件一样)每个字符串的实际出现是随机的,然后经修正后获得相应的比率,如果调入网页九次,可能不会正好得到这个结果。
2. Content Rotator组件的成员
Content Rotator组件仅提供两个方法,用于从内容调度文件中检索内容,如表6-5所示:
表6-5 Content Rotator组件的方法及说明
方 法
说 明
GetAllContent(schdule_file)
检索和显示schdule_file文件中的所有字符串
ChooseContent(schdule_file)
检索(但不显示)来自schdule_file文件的下一个合适的内容字符串
3. 使用Content Rotator组件
为了从调度文件中获得指定段的文本和HTML,可使用对象的ChooseContent方法检索一个条目,按照内容调度文件中规定的比率。可以使用Response.Write方法将其插入到发送给客房机的输出流中。
<% 'In VBScript:
Set objMyContent = Server.CreateObject("MSWC.ContentRotator")
strContent = objMyContent.ChooseContent("ContentRotator/content_schedule.txt")
Response.Write strContent
%>
这个代码使用了和页面在同一目录中的调度文件,如果这段代码存放在其他地方,必须注明调度文件的路径,这个路径可以是一相对于Web网站根目录的物理路径或是一个完整的虚拟路径。
ObjMyContent.ChooseContent("\content\mycontent.txt") 'relative physical path
ObjMyContent.ChooseContent("/demo/mycontent.txt") 'full virtual path
如果想显示内容调度文件中的所有内容字符串,可以使用对象的GetAllContent方法,如ChooseaContent方法的情况一样,必须提供调度文件的路径。例如下面的代码得到了内容调度文件中的所有内容并显示在网页里。注意这个方法把内容自动地插入到网页中,所以不必使用Response.Write方法,这个方法也自动地在每个条目之间加了一个水平线。
ObjMyContent.GetAllContent("mycontent.txt")
为了研究Content Rotator组件的作用,从“ASP Installable Components”主菜单打开提供的示例页面,这个页面使用前面讲过的内容调度文件。调用ChooseContent方法,并把一个条目放在页面的顶部,然后使用GetAllContent方法显示调度文件中所有条目的内容。Content Rotator组件示例页面如图6-9所示:
图6-9 Content Rotator组件示例页面
6.2.7 Page Counter组件
Page Counter组件用于统计每个网页被访问的次数,该组件定期把统计的数据存入服务器磁盘上的一个文本文件——访问次数统计数据文件(Hit Count Data File)中,所以在停机或出现错误信息,当前数据也不会丢失。
1. Page Counter组件的成员
Page Counter组件提供了向该文件增加访问次数的方法以及读取和重新设置访问计数总和的方法,如表6-6所示:
方 法
说 明
Hits([Page_Path])
返回由Page_Path指定的网页的访问次数,如果选项Page_Path省略的话,返回的是当前网页的访问次数
PageHit()
增加当前网页的访问次数
Reset([Page_Path])
设置由Page_Path指定的网页的访问次数为0,如果选项Page_Path省略的话,设置当前网页的访问次数为0
2. 使用Page Counter组件
下面例子使用JScript语言来说明Page Counter组件的使用,先用Server.CreateObject方法创建对象实例,然后调用Hits方法得到对当前网页的访问次数。如果访问次数达到5次,则把计数器重新设置为0,并且在网页中放置一个链接,以便向访问者通过成绩。
<% // in JScript:
var objPageCount = Server.CreateObject('MSWC.PageCounter');
//look for a command sent from the FORM section buttons
// increment the counter and display the current hit count
objPageCount.PageHit();
Response.Write('You are visitor number ' + objPageCount.Hits() + '<P>');
// we treat every fifth visitor as a winner
if (objPageCount.Hits() == 5) {
objPageCount.Reset(); // reset the counter
Response.Write('You\'re a lucky winner!<BR>');
Response.Write('<A HREF="winner.asp">Go to our winners page</A><BR>');
}
%>
注意在第二个Response.Write语句中,后向斜线(\)的使用是防止JScript引擎把引号看作字符串的结束。
本书提供了一个使用Page Co