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

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

  • <strong id="5koa6"></strong>
  • ASP3.0高級編程(九)

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    2.創建Vari ant 數組 在Session和Application對象中創建和使用一個Variant數組來存儲值的方法目前尚未討論,在這里作為一個非常有用的技術進行討論。正如已經看到的那樣,一個Variant數據類型可以包含一個數組,而不僅僅是一個值。 一個數組只是在內存的一
    2.  創建Variant數組
    在Session和Application對象中創建和使用一個Variant數組來存儲值的方法目前尚未討論,在這里作為一個非常有用的技術進行討論。正如已經看到的那樣,一個Variant數據類型可以包含一個數組,而不僅僅是一個值。
    一個數組只是在內存的一個連續區域中以指定的次序存儲二進制值的一個長行。要安排Variant,需要指向首項,并給出有關大小和結構的信息,腳本引擎可以做余下的事情。
    可在一個Variant變量中創建一維、二維或多維數組,然后把該數組分配給一個應用程序層或用戶會話層的變量,并保證整個數組可在相應的地方使用。下面代碼演示了一個簡單的一維數組的使用技術:
    Dim varArray(3)
    varArray(0) = “This is a”
    varArray(1) = “Variant array”
    varArray(2) = “stored in the”
    varArray(3) = “Session object”
    Session(“Variant_Array”) = varArray
    3.  應用程序和會話在何時啟動和結束
    在介紹ASP應用程序和會話如何進行工作時提到過這個內容。以最基本的術語概述如下:
    · 當第一個用戶請求應用程序作用域內(即Web網站的缺省根目錄內),或者在該網站的一個子目錄內的一個用戶定義的虛擬應用程序的一個ASP網頁時,啟動該應用程序。在任何用戶會話啟動之前發生。
    · 當任意用戶第一次請求在缺省應用程序或一個虛擬應用程序內的一個ASP網頁時,啟動一個會話(如果還沒一個活動的會話)。
    · 當用戶在會話指定的超時周期內沒有下載一個ASP網頁時,會話結束。超時時間可以在腳本代碼中使用Session.Timeout 屬性進行設置,可在Properties對話框中對各個應用程序單獨設置,或者通過Active Directory的IIS:部分修改IIS元數據庫中的缺省值進行設置。調用Session.Abandon方法的一個網頁完成執行以后,會話也會結束。
    · 在一個應用程序中的最后一個活動會話結束以后,該應用程序立即結束。
    4.  ASP處理指令
    正如在第1章中所看到的,可以把一條處理指令增加到一個ASP網頁。處理指令可以根據需要包含一個以上的條目??梢栽谡Z句中使用的關鍵字及其說明如表3-10所示:
    表3-10  ASP指令關鍵字及說明
    指令關鍵字 
    說 明 

    LANGUAGE=”language_name” 
    設置該網頁的缺省的腳本語言,如:<% @ LANGUAGE=”VBScript” %> 

    ENABLESESSIONSTATE=”True”|”Fasle” 
    當設置為“True”時,防止一個會話的cookie發送到瀏覽器,因此將不會創建新的Session對象,任何現有會話的內容將不再可用 

    CODEPAGE=”code_page” 
    設置該網頁的代碼頁,如<% @CODEPAGE=”1252” %> 

    LCID=”locale_identifier” 
    設置該網頁的位置標識符,如<% @LCID=”2057” %> 

    TRANSACTION=”transaction_type” 
    指明該網頁文件在一個事務環境下運行。有效值是:
    “Required”:如果已有可用的事務,腳本將在其中運行;如果沒有可用的事務,啟動一個新的事務。
    “Requires_New”:腳本將初始化一個新的事務。
    “Supported”:如果已有可用的事務,腳本將在其中運行;而且不啟動一個新的事務。
    “Not_Supported”:腳本將不運行于任何已有的事務中,并且不初始化一個新的事務。
    在第18章中詳細介紹事務。 

    在一個網頁上只能允許有一條處理指令,并且應該放在第一行。在處理指令中可以包含不止一個這樣的條目,但必須用空格進行分隔,等號兩端不能有空格,例如:
    <% @LANGUAGE=”VBScript” CODEPAGE=”1252” LCID=”2057” %>

    3.3.4 活動的ASP Application對象
        我們提供一些簡單的網頁,這些網頁示范了使用過程中的ASP Application和Session對象。為了能夠正常使用,必須把它們放到服務器上的一個虛擬應用程序內,并且把所提供的global.asa文件放到該應用程序的根目錄中。最簡單的辦法是把global.asa文件放到缺省Web網站的根目錄(缺省情況下是C:/.netPub/WWWRoot)中。
        對任何已有的global.asa文件重命名是一個好辦法,可以在以后對該文件進行恢復。
        本書的所有例子文件都可以從我們的Web網站上得到,在例子的Chapter03子目錄中還有本章的所有其余示例網頁。
        在Chapter03子目錄中,Default.asp網頁是一個簡單的菜單,該菜單允許運行Application和 Session示例網頁,運行屏幕如圖3-13所示:

    圖3-14  Application對象的內容屏幕
    注意到ASPCounter對象是StaticObjects集合的一個成員(通過<OBJECT>元素進行定義),但是其余部份(由 Server.CreateObject實例化)是Contents集合的成員。
    可以看到使用global.asa例子網頁放到這些集合中的值,這在前面已經看到:
    <!-- Declare instance of the ASPCounter component with
            application-level scope //-->
    <OBJECT ID=”ASPCounter” RUNAT=”Server” SCOPE=”Applicatoin”
                PROGID=”MSWC.Counters”>
    </OBJECT>
    ...
    ...
    <SCRIPT LANGUAGE=”VBScript” RUNAT=”Server”>
    Sub Application_onStart()
        ‘Create an instance of an ADO Connection with application-level scope
        Set Application(“ADOConnection”) = Server.CreateObject(“ADODB.Connection”)
        Dim varArray(3)                   ‘Create a Variant array and fill it
        varArray(0) = “This is a”
        varArray(1) = “Variant array”
        varArray(2) = “stored in the”
        varArray(3) = “Application object”
        Application(“Variant_Array”) = varArray ‘Store it in thd Application
        Application(“Start_Time”) = CStr(Now)   ‘Store the date/time as a string
        Application(“Visit_Count”) = 0      ‘Set counter variable to zero
    End Sub
    ...
    ...
    </SCRIPT>
    (1)  遍歷Contents集合的代碼
    為了遍歷Contents集合,可使用一個For Each ... Next結構。集合中的每一項可以是一個簡單的Variant類型變量、一個 Variant數組或者一個對象的引用。因為需要對每種類型的值進行不同的處理,所以就不得不對每一個進行檢查來判別其類型。
    在VBScript中可使用VarType函數完成這個工作。這里使用IsObject和IsArray函數代替:
    For Each objItem in Application.Contents
        If IsObject(Application.Contents(objItem)) Then
            Response.Write “Object reference: ‘” & objItem & “’<BR>”
        ElseIf IsArray(Application.Contents(objItem)) Then
            Response.Write “Array: ‘” & objItem & “’ contents are:<BR>”
            VarArray = Application.Contents(objItem)
            ‘Note: the following only works with a one-dimensional array
            For intLoop = 0 To UBound(varArray)
                Response.Write “  Index (“ & intLoop & “) = “ & _
                       ;      VarArray(intLoop) & “<BR>”
            Next
        Else
            Response.Write “Variable: ‘” & objItem & “’ = “ _
                       ;  & Application.Contents(objItem) & “<BR>”
        End If
    Next
    注意程序如何從Application對象檢索該數組。將其分配給一個局部(Variant)變量,使用下面的語句:
    varArray = Application.Contents(objItem)
    使用UBound函數可以查找出數組的大?。ㄔ氐臄盗浚?,這個值可以作為遍歷的終止條件:
    For intLoop = 0 UBound(varArray)
    這個例子是一維數組,并將只顯示這樣的一個數組的內容??筛鶕枰庉嫶a以處理多維數組,例如:
    For intLoop = 0 To UBound(varArray)
        IntNumberOfDimensions = UBound(varArray, 1)
        For intDimension = 0 To intNumberOfDimensions
            Response.Write “  Index(“ & intLoop & “) = “ _
                    & varArray(intLoop, intDimension)
        Next
        Response.Write “<BR>”
    Next
    (2)  遍歷StaticObjects集合的代碼
    StaticObjects集合包含了所有在global.asa中使用<OBJECT>元素聲明的對象引用。因為每個條目都是一個對象變量,可用簡單些的代碼對這個數組進行遍歷。我們將輸出對象的名字(在ID屬性中原有的定義):
    For Each objItem in Application.StaticObjects
        If IsObject(Application.StaticObjects(objItem)) Then
            Response.Write “<OBJECT> element: ID=’” & objItem & “’<BR>”
        End If
    Next


    原文轉自: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>