• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Application事件

    發表于:2007-06-30來源:作者:點擊數: 標簽:
    誰在站上的應用 好的站長都有一個很明確的目的,那就是,希望更多的訪問者進入他的站點。那么,如果能夠了解當前有多少用戶在站上以及在作什么就十分有必要了,這樣可以根據觀察的信息來完善自己的站點。 現在這個示例就是實時的統計當前訪問者以及每一個訪

    誰在站上的應用

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

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

    見下面顯示結果圖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.Dictionary”)

    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的信息,如果有,則進行刪除(因為這個用戶Session已經結束了)

    創建GrabStats文件

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

    例子17.4 GrabStats.asp

    <%

    Application(“Stats”).item(“Session.SessionID)=Request.ServerVariables(“SCRIPT_NAME”)

    %>

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

    將該腳本存為GrabStats.asp之后,那么在你需要進行跟蹤的ASP文件首行加入這么一句代碼<!--#INCLUDE VIRTUAL=”GrabStats.asp” à

    創建顯示誰在站上的頁面

    這個主頁就是顯示當前使用者。顯示的是每一個使用者的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></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應用有所了解并能夠提升你的網站的制作檔次。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>