ASP編程入門進階(十三):Ad & Content Rotator
更新時間:2007年01月03日 00:00:00 作者:
ASP的強大不僅僅局限于接受和顯示的交互,更多的是運用ActiveX 組件進行更強大的Web應用。
那究竟ActiveX組件為何物?它又是如何運作的呢?其實ActiveX Server Components(ActiveX 服務器組件)是一個存在于 WEB 服務器上的文件,該文件包含執(zhí)行某項或一組任務的代碼,組件可以執(zhí)行公用任務,這樣就不必自己去創(chuàng)建執(zhí)行這些任務的代碼。很形象的一句話:運用組件直接采用別人經(jīng)典的功能強大的程序。只不過這程序已被封裝了的。
那具體ActiveX組件是如何產(chǎn)生、如何得來的呢?一般由下面三個路徑獲得:
1,安裝完IIS服務器以后,自帶的一些內(nèi)置組件,如Database Access數(shù)據(jù)庫連接組件。
2,從第三方開發(fā)者處獲得可選的組件,或者免費或者收費的,如一些上傳組件(當然現(xiàn)在有無組件上傳)。
3,如果你是一位Web程序開發(fā)者,可以使用Visual Basic 、Java 、Visual C++ 、COBOL等程序設(shè)計語言來編寫你所需要的ActiveX Server Component。這也就是所謂的ASP進行COM(Component Object Model)、COM+開發(fā)了。
當然無論是第三方還是自行開發(fā),在使用之前都必須要進行系統(tǒng)的注冊。不過這些都是后話。我們現(xiàn)在需要的,是盡快先把ASP自帶的一些組件搞懂吧。
不過在使用內(nèi)置組件之前,先用一個程序檢測一下自己機器中的組件支持情況。
引用一段網(wǎng)上流行的“阿江ASP探針”,將下列代碼保存為asp文件進行調(diào)試查看。
1,objcheck.asp
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
如果你可以運行該ASP文件,也就是說你擁有IIS的WEB服務了。既然有IIS,不出意外,我們今天要學的組件AdRotator相信應該也是支持的。
P.S.一般微軟自帶的大多是MSWC開頭,我也一般戲稱為Microsoft WC :)
一、AdRotator組件
該組件通常又稱廣告輪顯組件,其功能相當于在網(wǎng)站上建立了一個,符合廣告領(lǐng)域標準功能的廣告系統(tǒng)。它具有:每次訪問ASP頁面時,在頁面上顯示不同的廣告內(nèi)容;跟蹤特定廣告顯示次數(shù)的能力以及跟蹤客戶端在廣告上單擊次數(shù)的能力。
AD Rotator 組件的工作原理是通過讀取 AD Rotator 計劃文件來完成的,該文件包括與要顯示圖象文件的地點有關(guān)的信息,以及每個圖象的不同屬性。下面就是一個標準的 AD Rotator 計劃文件。
1,類型為txt文本 ,命名為myadrot.txt
代碼的前四行包含了廣告的全局設(shè)置:
1,Redirect 指出廣告將成為其熱連接的URL。但其并非直接跳轉(zhuǎn)的URL,它包含了兩個參數(shù)的查詢字符串:特定廣告主頁的URL和圖象文件的URL。這些值從而可在gourl.asp文件中進行提取,并且與此同時gourl.asp還可以進行其他的處理工作,比如跟蹤單擊廣告的次數(shù)、跳轉(zhuǎn)到接受的的廣告主頁等。
2,width、height、border不用說一看就知道是連接圖片的寬、高以及邊框線大小。
“*”號表示了分隔符,以及“*”號下面的每四行為一個單位進行描述每個廣告的細節(jié)。其中分別代表:
1,每個廣告的描述包含圖象文件的URL
2,廣告對象的主頁URL(如果廣告客戶沒有主頁,則該行為一個連字符“-”,指出該廣告沒有鏈接)
3,圖象的替代文字
4,及指定該頁與其他頁交替顯示頻率的數(shù)值。
該文件是用戶自創(chuàng)建的文件。它通常用來解析由AdRotator對象發(fā)送的查詢字符串的腳本,并將用戶重定向到與用戶所點擊的廣告所相關(guān)的URL。那具體怎么應用該定向文件呢?
2、adrotator.asp
該文件最主要的是連接myadrot.txt文件,并且執(zhí)行myadrot.txt文件中的信息內(nèi)容。很簡單,兩行代碼。
“<%set myad=Server.CreateObject("MSWC.adrotator")%>”學過Server對象,相信還記得該對象強大的一個方法,那就是CreateObject。他可用于創(chuàng)建已經(jīng)注冊到服務器上的ActiveX組件實例。那這就表示引用組件MSWC.adrotator了。
“<%=myad.getadvertisement("myadrot.txt")%>”Ad Rotator組件支持的唯一方法也就是GetAdvertisement了,它只有一個參數(shù):AdRotator計劃文件的名稱。注意指向文件的路徑是當前虛擬目錄的相對路徑,物理路徑是不允許的。也就是說當前的adrotator.asp和myadrot.txt是在同一目錄下了。
然后進行執(zhí)行該ASP文件,多次刷新,會發(fā)現(xiàn)每次的廣告確實是在輪顯著的。這時再注意點擊圖片的超級連接地址。比如:
很明顯我們還需要建立gourl.asp,并且將url參數(shù)的值進行提取,再接著跳轉(zhuǎn)到該url地址上。
3、gourl.asp
該頁主要功能:提取url參數(shù)值,跳轉(zhuǎn)到廣告主頁。
功能很簡單就完成。當然,剛才也說了,這個頁還可以做其它一些事件:跟蹤客戶端在廣告上單擊次數(shù),比如將接受過來的相同的url地址進行記數(shù)的累加,就能顯示出該網(wǎng)站廣告的點擊次數(shù),然后和相應廣告商拿取相應的費用什么的……呵呵,在早期都要求需要實際點擊率的,現(xiàn)在好象不管,只要廣告掛那兒就行-_-!
不過,總的說來,這個組件的功能就是這樣。你有多個廣告商,并且是按比例單獨顯示,還需要計算實際點擊率的時候,用Ad Rotator組件是最好不過。那也就是說視情況而定了。
最后再說下,該組件的實現(xiàn)需要三個文件:重定向文件、引用文件、處理轉(zhuǎn)向文件。
二、Content Rotator組件
正如Ad Rotator為一廣告輪顯,Content Rotator組件則為內(nèi)容輪顯。
該組件就像一個簡化了的Ad Rotator組件,所以其工作原理亦為:通過讀取計劃文件來完成的網(wǎng)頁內(nèi)容的顯示。該計劃文件也就是:內(nèi)容調(diào)度文件(Content Schedule File)。
1,類型為txt文本 ,命名為context.txt
該文件的結(jié)構(gòu)比Ad Rotator的調(diào)度文件簡單,僅需提供要使用的各個文本字符串的列表,由前面加兩個百分號(%%)的語句行說明。
為了設(shè)置每個條目的比率(決定它出現(xiàn)在返回頁面中的頻率),在雙百分號的后面添加了一個數(shù)字。如果其后跟雙斜杠(//)就表示為添加的注釋。
接著就是通過ASP頁面將這些信息按規(guī)定完整顯示。
2、showcontext.asp
"Set MyContent = Server.CreateObject("MSWC.ContentRotator")",先建立和Content Rotator組件的聯(lián)系。
"Content = MyContent.ChooseContent("context.txt")",表示采用Content Rotator組件的有個方法:ChooseContent,并且賦值給變量Content,到最后輸出顯示結(jié)果。
3、showall.asp
以上頁面內(nèi)容個顯示是通過Content Rotator組件的ChooseContent方法實現(xiàn)的。此外,該組件還有一方法:GetAllContent。示例如下:
運行結(jié)果會發(fā)現(xiàn)context.txt所有內(nèi)容被解釋執(zhí)行,并且分類之間會自動添加了<hr>水平線。
當然這個方法可以用在隨機圖片之類的特效頁面上。
那究竟ActiveX組件為何物?它又是如何運作的呢?其實ActiveX Server Components(ActiveX 服務器組件)是一個存在于 WEB 服務器上的文件,該文件包含執(zhí)行某項或一組任務的代碼,組件可以執(zhí)行公用任務,這樣就不必自己去創(chuàng)建執(zhí)行這些任務的代碼。很形象的一句話:運用組件直接采用別人經(jīng)典的功能強大的程序。只不過這程序已被封裝了的。
那具體ActiveX組件是如何產(chǎn)生、如何得來的呢?一般由下面三個路徑獲得:
1,安裝完IIS服務器以后,自帶的一些內(nèi)置組件,如Database Access數(shù)據(jù)庫連接組件。
2,從第三方開發(fā)者處獲得可選的組件,或者免費或者收費的,如一些上傳組件(當然現(xiàn)在有無組件上傳)。
3,如果你是一位Web程序開發(fā)者,可以使用Visual Basic 、Java 、Visual C++ 、COBOL等程序設(shè)計語言來編寫你所需要的ActiveX Server Component。這也就是所謂的ASP進行COM(Component Object Model)、COM+開發(fā)了。
當然無論是第三方還是自行開發(fā),在使用之前都必須要進行系統(tǒng)的注冊。不過這些都是后話。我們現(xiàn)在需要的,是盡快先把ASP自帶的一些組件搞懂吧。
不過在使用內(nèi)置組件之前,先用一個程序檢測一下自己機器中的組件支持情況。
引用一段網(wǎng)上流行的“阿江ASP探針”,將下列代碼保存為asp文件進行調(diào)試查看。
1,objcheck.asp
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
如果你可以運行該ASP文件,也就是說你擁有IIS的WEB服務了。既然有IIS,不出意外,我們今天要學的組件AdRotator相信應該也是支持的。
P.S.一般微軟自帶的大多是MSWC開頭,我也一般戲稱為Microsoft WC :)
一、AdRotator組件
該組件通常又稱廣告輪顯組件,其功能相當于在網(wǎng)站上建立了一個,符合廣告領(lǐng)域標準功能的廣告系統(tǒng)。它具有:每次訪問ASP頁面時,在頁面上顯示不同的廣告內(nèi)容;跟蹤特定廣告顯示次數(shù)的能力以及跟蹤客戶端在廣告上單擊次數(shù)的能力。
AD Rotator 組件的工作原理是通過讀取 AD Rotator 計劃文件來完成的,該文件包括與要顯示圖象文件的地點有關(guān)的信息,以及每個圖象的不同屬性。下面就是一個標準的 AD Rotator 計劃文件。
1,類型為txt文本 ,命名為myadrot.txt
redirect gourl.asp width 88 height 31 border 1 * http://www.cnbruce.com/images/logo.gif http://www.cnbruce.com/ CN-Bruce 10 http://www.it365cn.com/images/logo.gif http://www.it365cn.com It365cn 10 http://www.blueidea.com/images/logo.gif http://www.blueidea.com Blue!dea 10 |
代碼的前四行包含了廣告的全局設(shè)置:
1,Redirect 指出廣告將成為其熱連接的URL。但其并非直接跳轉(zhuǎn)的URL,它包含了兩個參數(shù)的查詢字符串:特定廣告主頁的URL和圖象文件的URL。這些值從而可在gourl.asp文件中進行提取,并且與此同時gourl.asp還可以進行其他的處理工作,比如跟蹤單擊廣告的次數(shù)、跳轉(zhuǎn)到接受的的廣告主頁等。
2,width、height、border不用說一看就知道是連接圖片的寬、高以及邊框線大小。
“*”號表示了分隔符,以及“*”號下面的每四行為一個單位進行描述每個廣告的細節(jié)。其中分別代表:
1,每個廣告的描述包含圖象文件的URL
2,廣告對象的主頁URL(如果廣告客戶沒有主頁,則該行為一個連字符“-”,指出該廣告沒有鏈接)
3,圖象的替代文字
4,及指定該頁與其他頁交替顯示頻率的數(shù)值。
該文件是用戶自創(chuàng)建的文件。它通常用來解析由AdRotator對象發(fā)送的查詢字符串的腳本,并將用戶重定向到與用戶所點擊的廣告所相關(guān)的URL。那具體怎么應用該定向文件呢?
2、adrotator.asp
該文件最主要的是連接myadrot.txt文件,并且執(zhí)行myadrot.txt文件中的信息內(nèi)容。很簡單,兩行代碼。
<%set myad=Server.CreateObject("MSWC.adrotator")%> <%=myad.getadvertisement("myadrot.txt")%> |
“<%set myad=Server.CreateObject("MSWC.adrotator")%>”學過Server對象,相信還記得該對象強大的一個方法,那就是CreateObject。他可用于創(chuàng)建已經(jīng)注冊到服務器上的ActiveX組件實例。那這就表示引用組件MSWC.adrotator了。
“<%=myad.getadvertisement("myadrot.txt")%>”Ad Rotator組件支持的唯一方法也就是GetAdvertisement了,它只有一個參數(shù):AdRotator計劃文件的名稱。注意指向文件的路徑是當前虛擬目錄的相對路徑,物理路徑是不允許的。也就是說當前的adrotator.asp和myadrot.txt是在同一目錄下了。
然后進行執(zhí)行該ASP文件,多次刷新,會發(fā)現(xiàn)每次的廣告確實是在輪顯著的。這時再注意點擊圖片的超級連接地址。比如:
gourl.asp?url=http://www.cnbruce.com/&image=http://www.cnbruce.com/images/logo.gif |
很明顯我們還需要建立gourl.asp,并且將url參數(shù)的值進行提取,再接著跳轉(zhuǎn)到該url地址上。
3、gourl.asp
該頁主要功能:提取url參數(shù)值,跳轉(zhuǎn)到廣告主頁。
<%whaturl=request.querystring("url")%> <%response.redirect whaturl%> |
功能很簡單就完成。當然,剛才也說了,這個頁還可以做其它一些事件:跟蹤客戶端在廣告上單擊次數(shù),比如將接受過來的相同的url地址進行記數(shù)的累加,就能顯示出該網(wǎng)站廣告的點擊次數(shù),然后和相應廣告商拿取相應的費用什么的……呵呵,在早期都要求需要實際點擊率的,現(xiàn)在好象不管,只要廣告掛那兒就行-_-!
不過,總的說來,這個組件的功能就是這樣。你有多個廣告商,并且是按比例單獨顯示,還需要計算實際點擊率的時候,用Ad Rotator組件是最好不過。那也就是說視情況而定了。
最后再說下,該組件的實現(xiàn)需要三個文件:重定向文件、引用文件、處理轉(zhuǎn)向文件。
二、Content Rotator組件
正如Ad Rotator為一廣告輪顯,Content Rotator組件則為內(nèi)容輪顯。
該組件就像一個簡化了的Ad Rotator組件,所以其工作原理亦為:通過讀取計劃文件來完成的網(wǎng)頁內(nèi)容的顯示。該計劃文件也就是:內(nèi)容調(diào)度文件(Content Schedule File)。
1,類型為txt文本 ,命名為context.txt
%% 3 //后面是注釋 <font color=red>ASP編程入門進階</font> %% 4 //下面顯示表格 <table><tr><td>www.cnbruce.com</td></tr></table> %% 5 <A >CN-Bruce</A> |
該文件的結(jié)構(gòu)比Ad Rotator的調(diào)度文件簡單,僅需提供要使用的各個文本字符串的列表,由前面加兩個百分號(%%)的語句行說明。
為了設(shè)置每個條目的比率(決定它出現(xiàn)在返回頁面中的頻率),在雙百分號的后面添加了一個數(shù)字。如果其后跟雙斜杠(//)就表示為添加的注釋。
接著就是通過ASP頁面將這些信息按規(guī)定完整顯示。
2、showcontext.asp
<% Set MyContent = Server.CreateObject("MSWC.ContentRotator") Content = MyContent.ChooseContent("context.txt") Response.Write Content %> |
"Set MyContent = Server.CreateObject("MSWC.ContentRotator")",先建立和Content Rotator組件的聯(lián)系。
"Content = MyContent.ChooseContent("context.txt")",表示采用Content Rotator組件的有個方法:ChooseContent,并且賦值給變量Content,到最后輸出顯示結(jié)果。
3、showall.asp
以上頁面內(nèi)容個顯示是通過Content Rotator組件的ChooseContent方法實現(xiàn)的。此外,該組件還有一方法:GetAllContent。示例如下:
<% Set MyContent = Server.CreateObject("MSWC.ContentRotator") Content = MyContent.GetAllContent("context.txt") Response.Write Content %> |
運行結(jié)果會發(fā)現(xiàn)context.txt所有內(nèi)容被解釋執(zhí)行,并且分類之間會自動添加了<hr>水平線。
當然這個方法可以用在隨機圖片之類的特效頁面上。
相關(guān)文章
對象標記具有無效的 ''MSWC.MyInfo'' ProgID
對象標記具有無效的 ''MSWC.MyInfo'' ProgID...2007-02-02ASP編程入門進階(二十):ADO組件之插入數(shù)據(jù)記錄
ASP編程入門進階(二十):ADO組件之插入數(shù)據(jù)記錄...2007-01-01ASP編程入門進階(十四):Browser & Linking
ASP編程入門進階(十四):Browser & Linking...2007-01-01