標題標題  顯示論壇會員列表名單  搜索論壇搜索  HelpHelp
  注冊注冊  登入登入
ASP教學區
 DoReMe : ASP教學區
主題 話題: 第十七章 對Active Server Pages的Applications的處理 回復發表新主題
作者
貼子內容 << Prev Topic下一個主題 >>
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:46上午 | IP記錄 引用 bibi

在這章裡面,你會學到怎樣使用applications。第一部分是個預覽。第二部分就是學會它的方法、集合以及事件。最後,第 三部分是兩個應用程序示例,一個是簡單的多人聊天室,另一個是網站實時用戶狀況顯示。

什麼是Application?

微軟希望用戶將Active Server Pages作為一種常規的編程語言。當你創建了一個 Active Server Pages的時候,你就創建了一個類似子程序這樣的東西。當你創建 了一組Active Server Pages,那麼你就是創建了一個application。

因此,一個Application就是在硬盤上的一組主頁以及ASP文件,當一個Active Server Pages加入了一個application,那麼它就擁有了作為單獨主頁所無法擁有 的屬性。下面是Active Server Pages的application的一些特性:

■數據可以在application內部共享,因此可以覆蓋多個用戶。

■一個Application包含事件可以觸發某些applicatin腳本。

■一個對象的例子可以被整個application共享。

■個別的application可以用Internet Service Manager來設置而獲得不同屬性

■單獨的application可以隔離出來在他們自己的內存中運行,這就是說,如果一個人的application遭到破壞, 不會影響其他人。

■你可以停止一個application(將其所有組件從內存中驅除)而不會影響到其他應用。

一個網站可以有不止一個application。典型的,你可以根據針對於個別任務的一些ASP文件創建個別的applicat ion。例如,你也許創建了一個application來適用於全部公用用戶,而再次創建另外一個來限制在網絡管理員的範圍。

你還可以在位於同一台服務器的不同網站創建不同的application。例如,在一台服務器上為Tom的在線書市和Jerry 的在線花店各創建一個application。

一個Application的跟目錄由Internet Service Manager來設定,這時,這個目錄以及其 子目錄均屬於這個application,不過,如果某一個子目錄也進行了設定,將被認為是另一個application,換句 話說,沒有兩個application可以重疊交錯。

當你首先安裝了Active Server Pages後,只有幾個默認的Application。例如,為你的默認網站創建了一個Application。不過,你可以根 據自己的要求創建隨意多個Application。

下面是設定一個Active Server Pages application的方法:

1.從Microsoft Internet Information Server程序組中執行Internet Service Manager。

2.在樹型導航欄中點擊你的默認站點名稱(如果沒有做過改變,名稱應當是:Default Web Site)

3,選擇一個存在的路徑(你需要創建Application的路徑),或者創建一個這樣的路徑。創建方式略。

4.點擊屬性圖標或者右鍵該目錄名稱然後選擇屬性項

5.在屬性表中,選擇主目錄或者虛擬目錄項

6.在Application Setting區中,點上Creat按鈕。

注意

這時你需要為這個application進行命名,不過這種命名只是為了電腦內部管理器的認定,和程序腳本沒有關係。

你現在成功的創建了一個新的Application。創建後,你就可以在Application設置區域中進行屬性設置(見圖1 7.1),例如限定是否使用Session和進行Buffer輸出等等。

另外,這種設置之後就可以使用自己的Global.asa文件來創建自己的事件。在後面的小節中有詳細介紹。

圖17.1 創建一個Application

 

 

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:46上午 | IP記錄 引用 bibi

使用Application對像

Application對像擁有與Application所有相關的集合,方法,以及事件。下面的部分你將學會怎樣使用Appl ication對像來創建application變量和application事件。

對Application變量的介紹

一個application變量包含的數據可以在整個application中被所有用戶享用。Application對像包括 任何類型,包括隊列和對象。一個application變量和一個Session變量區別有以下兩點:

■和Session不同的是,Application變量不需要Cookies。網站不需要利用Application變量來跟 蹤用戶進程。這就意味著使用起來很安心,可以適應任何瀏覽器。

■和一個Session變量不同的是,application變量可以被多個用戶共享。從一個用戶接受到的applicatio n變量可以傳遞給另外的用戶。

注意

對Session的瞭解在第16章。

下面是利用Application的普通應用:

■一個application變量可以用來在每個主頁上顯示瞬態信息,例如,你可以利用application變量來對於每一個 主頁進行當日新聞的更新。

■Application可以用來記錄廣告條被點擊的時間和次數。「參看第21章」

■Application可以從數據庫中讀取數據,例如,你可以從你的網站的數據庫中接受銷售品目錄然後利用applicati on變量顯示在多個主頁上。

■一個Application變量可以用來統計目前上站人數,可以參見後面的小節。

■一個application變量可以用於網站上不同用戶間的通訊,你這樣就可以創建多用戶遊戲以及多用戶聊天室,可以參看後面 聊天室的應用小節。

創建和讀取Application變量

其實這部分相當簡單,因為讀者您讀到這裡已經有相當基礎了,創建讀取過程和以往的Session變量沒什麼區別,見下面的例子應 用:

<HTML>

<HEAD><TITLE>Application示例</TITLE></HEA D>

<BODY>

<%

Application(「Greeting」)=」Welcome!」

%>

<%=Application(「Greeting」)%>

</BODY>

</HTML>

在這個示例中,一個新的名字為Greeting的application變量被創建,賦值為」Welcome!」。然後這個變量 值」Welcome!」顯示在瀏覽器上。

一旦變量被賦值,它就可以在任何ASP文件中顯示出來,即使是其他用戶調用。例如,這時候另外一個用戶調用下面的ASP文件,也 可以顯示」Welcome!」信息:

<HTML>

<HEAD><TITLE>另外一頁</TITLE></HEAD>

<BODY>

<%=Application(「Greeting」) %>

</BODY>

</HTML>

很重要的需要理解的是,由於Application變量是對於多用戶共享的,因此與Session變量有著本質的區別。同時ap plication變量不會因為某一個甚至全部用戶離開就消失,一旦建立了application變量,那麼它就會一直存在到網 站關閉或者這個application被卸載。這經常可能是幾周或者幾個月。

由於application變量創建時不會自己消亡,因此你就要特別小心的使用,這可是佔用內存的,你可要斟酌使用以免降低服務 器對其他工作的響應速度。

注意

Application變量終止的情況有三種,服務被終止,Global.asa被改變,或者該Application被卸載。

為了更好的瞭解多用戶共享這個概念,,我們拿出下面這個腳本例子:

<%

Randomize

If INT(2*RND)=1 THEN

Application(「FavoriteColor」)=」Blue」

Else

Application(「FavoriteColor」)=」Red」

END IF

%>

很容易理解的是,如果將Application換成Session,那麼對於每一個單獨用戶來說,值很可能是不一樣的,但是這裡 面由於是Application,那麼不管多少個用戶調用該腳本,大家的該變量都是一樣的,即使後來的訪問者調用時顏色與前面人 調用的不一樣,那麼由於這種共享變量,自然對於其他人來說就相當於進行變量值的改變。不過,現在細心的讀者也許會發現這裡面有些 問題,即:如果多人同時調用,那麼豈不是要亂了。例如下面這個例子:假如你正在使用一個application來記錄一個廣告條 的點擊次數,如果兩個人正在同時點擊,那麼衝突怎麼辦?

<%

NumClicks=Application(「BannerClicks」)

NumClicks=NumClicks+1

Application(「BannerClicks」)=NumClicks

%>

可以看出,每一次點擊,該變量值加1,但是如果這個腳本被同時進行,即多人同時點擊,幸好有兩個Application方法專門 應付這種問題,分別是Lock方法和Unclock方法,用來暫時防止其他用戶對application變量的改變,那麼前面的 例子正確形式應該如下:

<%

Application.Lock

NumClicks=Application(「BannerClicks」)

NumClicks=NumClicks+1

Application(「BannerClicks」)=NumClicks

Application.UnLock

%>

腳本的第一行將application進行lock操作,那麼其他用戶就無法對application變量進行修改直到Uncl ock操作或者該ASP文件執行結束。

請注意你不能針對個別變量進行Lock操作,也就是說,要不全都Lock,要不全都不。前面的腳本其實也就是防止用戶修改該Ap plication的所有變量。

瞭解Lock方法注意不是永遠不讓其他用戶進行Application變量的修改,而是讓修改過程連續有序,防止衝突。

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:47上午 | IP記錄 引用 bibi

全部顯示Application對像

絕大部分Application變量存放於contents集合中,當你創建一個新的application變量,其實就是在c ontents集合中添加了一項,例如,下面兩個腳本是等效的:

<%Application(「Mycompany」)=」北京邁至科網絡」>

<%Application.contents(「Mycompany」)=」北京邁至科網絡」>

由於Application變量存放在集合裡面,那麼如果想要全部顯示,其方法用戶應當已經知道了,不錯,和以前的一樣,例如F or Each循環。

<%

FOR EACH thing IN Application.Contents

Response.Write(「<BR>」&thing&Application.Conten ts(thing))

NEXT

%>

顯示結果無須贅述,自然,以前提到的顯示集合中所有變量的其他方法一樣適用,包括進行統計的Count方法。

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:47上午 | IP記錄 引用 bibi

Application事件

和Session事件一樣,Application也有兩個時間Application_OnStart和Applicatio n_OnEnd,第一個事件在Application開始時觸發,後者在結束時觸發。

什麼時候application開始呢?不,不是網站一開始,是第一個請求Application的頁面被調用。

一個Application的OnStart事件肯定是在Session_Start事件之前的。不過,Application 不會像Session那樣在一個新用戶請求後就觸發,Application只觸發一次,就是第一個用戶的第一次請求。

Application_OnEnd事件只有在服務終止或者該application卸載時才會觸發,例如,你在Interne t Service Manager中關閉了網絡服務。,那麼Application_OnEnd事件就會觸發,如果你針對單獨目的使用applic ation,這個事件可以通過application在利用Unload按鈕卸載時進行觸發。一個Application_On End事件肯定發生在Session_OnEnd事件之後。

Application_OnStart和Application_OnEnd事件都是觸發一個也是唯一一個腳本程序。而且這些 事件都在一個文件中,那就是在Session事件中提到的Global.asa文件,下面為了加深瞭解,再次給出其結構:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Application_OnStart

END SUB

</SCRIPT>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Application_OnEnd

END SUB

</SCRIPT>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Session_OnStart

END SUB

</SCRIPT>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Session_OnEnd

END SUB

</SCRIPT>

有關Session的事件我們認為你已經在第16章學的很不錯了,那麼其餘的兩個就是我們現在要介紹的Application事 件。

這裡面和Session事件一樣限制的是,你不能使用HTML標誌,不能進行任何輸出,不能將語句寫出子程序或者寫成其他方式。 因此,編寫時要特別小心。

Application_Onstart事件一般是用來初始化這個Application的變量,例如下面用Applicati on_Onstart事件和Session_OnStart事件來進行訪問人數統計:

<Script Language=VBScript RUNAT=Server>

SUB Application_OnStart

Application(「TotalUsers」)=0

END SUB

</SCRIPT>

<SCRIPT Language=VBScript RUNAT=Server>

SUB Session_OnStart

Application.Lock

Application(「TotalUsers」)=Application(「TotalUsers」)+1

Application.Unclock

END SUB

</SCRIPT>

在Application_OnStart事件中只有一個語句將TotalUsers變量置0,只有網站開始後這個腳本才能執行 。

Session_OnStart事件在每一個用戶到達後都都將TotalUsers加1,同時使用Lock方法防止衝突。

這樣,在你希望顯示訪問人數的頁面上,加入下面腳本:

<%=Application(「TotalUsers」) %>

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:47上午 | IP記錄 引用 bibi

聊天室應用

在這個部分以及後面部分,你會學到怎樣利用Application對像進行實際應用的例子:一個聊天室和實時網絡用戶狀態檢測。 這些只是對一些技術特點的討論,不過很有可能這些例子適用於您的網站。

最能打動用戶一次次進入你的網站的的是建立一種網絡相互通訊的感覺。其中最能說明問題的就是多人聊天室。

注意

下面這個例子當前服務器上用在NetScape4.0調試可能會有問題,但是正常使用不會出錯(誰會從服務器上進入聊天室?反正 訪問者不可能採用這種途徑)

這個聊天室允許多用戶實時進行信息交流,所有用戶可以看到彼此的信息,同樣,可以增加這些信息(見圖17.2)。

圖17.2 聊天室網頁

 

 

 

 

 

 

 

 

 

 

 

 

 

你需要為這個聊天室創建三個文件,下面是你要創建和修改的文件列表:

■聊天室主頁,也就是確立兩個分屏及其名稱,和分屏方式。

■顯示頁,顯示共有信息並每隔5秒種進行更新。

■信息頁,允許用戶發出新的信息,這裡面包括一個用於輸入的文本框。

■Global.asa文件。將改變Application_OnStart事件腳本來進行初始化操作。

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:48上午 | IP記錄 引用 bibi

創建聊天室主頁

首先要創建一個調用分屏的主頁,當然這也是最簡單的,由於這部分不需要腳本程序,只要命名為chatpage.cfm就可以了, 見例子17.1。

<HTML>

<HEAD><TITLE>邁至科聊天室示例</TITLE></HEAD>

<FRAMESET ROWS=」*,100」>

<FRAME SRC=」Display.asp」 name=」Toppage」>

<FRAME SRC=」Message.asp」 name=」Bottompage」>

</FRAMESET>

</HTML>

為什麼一定要分屏呢?因為顯示頁每隔5秒就更新,而還需要進行信息輸出,如果在一個主頁上,那麼用戶肯定會因為信息總是只寫了一 半就刷新而氣瘋的。

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:48上午 | IP記錄 引用 bibi

修改Global.asa文件

為了讓這個應用能夠進行,必須對Global.asa進行相應修改來設置一些變量初值。這些變量必須是application類 型的因為這需要多用戶共享,第一個application變量名稱是Talk,它其實是所有信息的隊列,Talk隊列的賦值就是 TempArray ,同時Tplace是當前隊列的位置,初值為0,腳本如下:

<Script Language=VBScript RUNAT=Server>

Sub Application_OnStart

Dim TempArray(5)

Application(「Talk」)=TempArray

Application(「Tplace」)=0

END SUB

</SCRIPT>

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:48上午 | IP記錄 引用 bibi

創建信息發送頁

信息發送頁的目的就是允許用戶發送新的信息,用戶在文本框中添入要發送的信息,然後按發送按鈕就進行自身調用回到同樣的頁面(當 然,腳本裡面包括了信息的處理發送)。

這個腳本做兩件事情,首先,檢查是否有多於4個信息存在。如果多於的話,將Tplace置0,這樣防止Talk隊列的信息過於繁 多見圖17.3)。

然後,在Talk隊列的Tplace位置中添加新的信息,同時將Tplace指向下一個位置。

下面是該例子完整的腳本程序

例17.2

<%

IF not Request.Form(「message」)=」」 THEN

Application.Lock

IF Application(「Tplace」)>4 THEN
Application(「Tplace」)=0

END IF

TempArray=Application(「Talk」)

TempArray(Application(「Tplace」))=Request.Form(「Message」)

Application(「Talk」)=TempArray

Application(「Tplace」)=Application(「Tplace」)+1

END IF

%>

<HTML>

<HEAD><TITLE>邁至科聊天室應用示例之信息發送</TITLE></H EAD>

<BODY BGCOLOR=」LIGHTBLUE」>

<FORM Method=」POST」 Action=」message.asp」>

<Input Name=」message」 Type=Text SIZE=50>

<input type=submit Value=」發送」>

</form>

</Body>

</html>

圖17.3 信息發送頁

 

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:49上午 | IP記錄 引用 bibi

創建顯示頁

最後需要創建一個顯示這些信息的頁面,這個頁面將所有的訪問者提交的信息顯示出來。這個頁面每隔5秒鐘自動刷新,這使用了客戶段 牽引請注意這裡面HTML的<META>標記所包含的語句,(在Active Server Page中添加一個Refresh的Header)

下面的第一個腳本用來確認當前ASP文件的全部URL地址,這裡面還是使用了ServerVariable集合併將得到的全部路 徑加文件名賦值給MySelf的變量。這個變量就用於在<META>標記包含的語句中指示更新的文件名稱及路徑。

後面的主要腳本用來顯示Talk隊列,即所有人發送的信息,這裡面用的是For…Next循環(見圖17.4)。例子17.3是 顯示頁的全部Active Server Pages代碼。

例17.3:

<%

MyServer=Request.ServerVariables(「SERVER_NAME」)

MyPath=Request.ServerVariables(「SCRIPT_NAME」)

MySelf=」Http://」&MyServer&MyPath

%>

<HTML>

<HEAD>

<META HTTP-EQUIV=」REFRESH」 CONTENT=」5;<%=MySelf%>」>

<TITLE>邁至科聊天室應用示例之顯示頁</TITLE>

</HEAD>

<BODY>

<P Align=Right><%=NOW%></P>

<%

TempArray=Application(「Talk」)

For i=0 to Application(「Talk」)-1

Response.Write(「<p>」&Temparray(i))

NEXT

%>

</BODY>

</HTML>

 

 

 

 

 

 

 

 

 

 

 

圖17.4 顯示頁

這樣,就可以每隔5秒鐘將隊列中的消息顯示一遍,達到近似於實時交流的目的。

 

擴展聊天室項目

有很多種方法可以使這種聊天室更加完備,比如說,現在每次只能顯示5個信息,那麼如果訪問者比較多,這就很不夠了,因此你可以在 最初的Global.asa中將TempArray隊列設得大一些,然後在發送信息頁相應部分進行修改其限制數目。

這個聊天室的信息發送顯然是允許HTML格式的,當然,你可以替訪問者考慮一些,比如說,用CheckBox來允許訪問者選擇自 己喜歡的信息發送顏色。

最後,相當重要的是,用戶發送的信息應當含有用戶代號,不過,這也並不困難,還記得Session變量是幹什麼的嗎?給每個用戶 登錄時創建一個Session變量記錄其代號,然後每次信息發送時連同該Session變量一同發送。

注意

本書的很多例子都可以在http://aspsite.com中找到。

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:49上午 | IP記錄 引用 bibi

誰在站上的應用

好的站長都有一個很明確的目的,那就是,希望更多的訪問者進入他的站點。那麼,如果能夠瞭解當前有多少用戶在站上以及在作什麼就 十分有必要了,這樣可以根據觀察的信息來完善自己的站點。

現在這個示例就是實時的統計當前訪問者以及每一個訪問者剛進行的主頁請求。

見下面顯示結果圖17.5:

圖17.5 誰在線上

 

 

 

這個示例說明了怎樣將一個對像賦值給一個application對象,一個字典對像用來儲存訪問者信息,當訪問者發出了一個請求 ,這個對象就進行了更新,下面是這個應用所需要製作和修改的文件列表:

■Global.asa文件:針對這個應用Application_OnStart事件和Application_OnEnd事 件都需要進行修改。

■GrabStates文件::這個文件更新Dictionary對象,你需要在每一個想要跟蹤的ASP文件首包含這個腳本。

■WhosOn頁:就是顯示目前站上用戶以及目前狀態。

修改Global.asa文件

做這個應用項目,你需要修改兩個腳本,首先是創建一個Dictionary對象,用來存儲訪問者信息,由於這個對象的創建只需要 一次,那麼可以在application_OnStart事件中進行:

<SCRIPT LANGUAGE=VbScript RUNAT=Server>

SUB Application_OnStart

Set Application(「Stats」)=Server.CreateObject(「Scripting.Dictiona ry」)

END SUB

</SCRIPT>

只是添加了一句腳本語言。這個語句將新創建的一個Dictionary事例賦值給名字為stats的application變量 ,創建之後,在整個應用中就可以一直使用了。

注意

在application的範圍內創建對象的更多方法將在下一章中有詳盡的討論。

在一個用戶的Session結束時,我們必須把他的信息清除,這就需要修改Session_OnEnd對像:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Session_OnEnd

IF Application(「Stats」).Exists(Session.SessionID) THEN

Application.Lock

Application(「Stats」).Remove(Session.SessionID)

Application.UnLock

END IF

END SUB

</SCRIPT>

用戶將根據他們的SessionID來被跟蹤,字典中的名字為stats的鍵與相應的Session Ids相對應,首先檢查字典中是否有有關這個已經離開的SessionID的信息,如果有,則進行刪除(因為這個用戶Sessi on已經結束了)

創建GrabStats文件

想要決定當前頁的瀏覽者,就必須在每一個要進行跟蹤的頁面前包含一個腳本文件。這個文件其實只有一行語句,見例子17.4。

例子17.4 GrabStats.asp

<%

Application(「Stats」).item(「Session.SessionID)=Request.Server Variables(「SCRIPT_NAME」)

%>

這個腳本將當前頁的路徑加入到Dictionary對像中去。當前路徑依然是通過ServerVariable變量獲得。然後, 該變量值賦值給字典中對應當前用戶ID的鍵中(如果不存在,則自動創建。)

將該腳本存為GrabStats.asp之後,那麼在你需要進行跟蹤的ASP文件首行加入這麼一句代碼<!--#INCL UDE VIRTUAL=」GrabStats.asp」 a

創建顯示誰在站上的頁面

這個主頁就是顯示當前使用者。顯示的是每一個使用者的SessionID和他的最後一次請求的頁面,下面是這個顯示頁面的全部代 碼:

例17.5 WhosOn.asp

<!-- #INCLUDE VIRTUAL=」GrabStats.asp」 -->

<%

MyServer=Request.ServerVariables(「SERVER_NAME」)

MyPath=Request.ServerVariables(「SCRIPT_NAME」)

MySelf=」Http://」&MyServer&MyPath

%>

<HTML>

<HEAD>

<META HTTP-EQUIV=」REFRESH」 CONTENT=」20;<%=MySelf%>」>

<TITLE>邁至科誰在站上應用示例之顯示頁</TITLE>

</HEAD>

<BODY>

<% Application.Lock

Set TempStats=Application(「Stats」)

Application.Unlock

%>

<Center>

當前訪問者一共<%=TempStats.Count %>個

<table Border=1 cellspacing=10>

<tr><th>訪問者ID</Th><th>當前訪問頁</th&g t;</tr>

<%

TempItems=TempStats.Items

TempKeys=TempStats.Keys

For I=0 to UBOND(TempKeys)

%>

<tr><td><%=tempKeys(i) %></td><td><%=TempItems(i) %></td></tr>

<% next %>

</center>

</table>

</Body>

</Html>

第一行包含的文件GrabStats.asp就是前面的那一部分所創建的,也就是說,該主頁的訪問情況也在跟蹤統計之內。第一個 腳本就是接受當前路徑,沒有什麼可以再解釋的,只是這次更新時間改為20秒而已。

第二個腳本是將application的字典對像變量存在一個臨時的TempStats字典對像中,這個對象會在該頁結束時自動 清除。後面的腳本則是循環顯示所有的鍵和值。顯示結果見本節部分的圖17.5。

擴展這種應用

這種應用示例對於瞭解自己的網站訪問情況是很有好處的,你可以瞭解當前網站上的訪問者,也可以瞭解他們在瀏覽哪方面的內容。

有很多種方式來使這種應用功能更加完備,例如,想要從SessionID中瞭解用戶信息太難了,如果你的網站有註冊登錄界面,那 麼在字典對像中完全可以用登錄名來代替毫無表達意義的ID值。

另外,你完全可以跟蹤用戶訪問的時間長度,這種對腳本的修改也不算複雜,例如,你只需要建立第二個application變量來 包含另一個字典對象,專門存儲用戶停留時間的信息。

注意

相關示例展示可以參見http://www.aspsite.com

 

總結

在這章中,你應當學會了Active Server Pages的application應用,首先是全面瞭解, 然後學會使用它的集合,屬性以及事件。最後是兩個有代表性的實例,這樣你應當對一些比較高級的ASP應用有所瞭解並能夠提升你的 網站的製作檔次。



Edited by bibi 在 2005/1月/07 9:52上午
Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 

如果你想回復的話你必須首先 login
如果你還沒有注冊的話你必須首先 注冊

  回復發表新主題
顯示可打印的頁面 顯示可打印的頁面

論壇跳轉
不能 張貼新論題在這個討論版
不能 回應論題在這個討論版
不能 刪除你的發言在這個討論版
不能 編輯你的發言在這個討論版
不能 新增投票標題在這個討論版
不能 在這個討論版投票

Edit by doreme Forums version 2004
Welcome ©2001-2004 doreme Guide

This page was generated in 0.1870 seconds.

 
保養品
保養品, Skin Care
www.elady.tw
美材批發
美材, Cosmetic
www.elady.tw/beauty_org
保養品批發
名牌保養品、保養品批發
gb.perfume.com.tw/skincare
飾品批發
飾品、飾品批發
gb.perfume.com.tw/ornament