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