編程|進階 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