標籤:
在一起協同工作以完成某項任務的一組ASP檔案稱為一個應用程式。Application 對象用於把這些檔案捆綁在一起。
Application 對象用於在整個應用程式生存期間儲存資訊。
Application 對象用於儲存和訪問來自任何頁面的變數,類似於 Session 對象。不同之處在於,所有使用者分享一個 Application 對象,而 Session 對象和使用者的關係是一一對應的。
Application 對象沒有屬性。
Application 對象的原理是這樣的,在每次應用程式啟動(即 IIS 的啟動)時,會在記憶體中請求一部分空間來儲存資料,這個資料對於訪問網站的所有使用者來說是共用的,當在 IIS 中停止網站或者伺服器重啟時,Application 對象所儲存的資訊將丟失。
Application 對象的方法和集合
與 Session 對象類似,Application 對象也有 Contents 集合,下面的例子示範了如何設定和讀取資料:
<%Application.Contents("WebSite") = "http://pchmonster.cnblogs.com"Dim WebSiteWebSite = Application("WebSite")Response.Write(WebSite)%>
Application 對象也有 Remove 和 RemoveAll 兩個方法,其使用方法和 Session 對象相應方法類似,這裡不再詳細描述了。
Applicaton 對象另外一對方法是 Lock 和 UnLock 方法。
Lock 方法阻止其他使用者修改 Application 對象中的變數(用來確保同一時間只有一位使用者可以修改 Application 物件變數)。
Unlock 方法使其他使用者能夠修改儲存在 Application 對象中的變數(在它被使用 Lock 方法鎖定之後)
下面的例子,Lock 方法可以防止一個以上使用者訪問變數 Visits,用 Unlock 方法來對鎖定的對象進行解鎖,這樣下一個使用者就可以增加變數 Visits 的值。
<%Application.Lock()Application("Visits") = Application("Visits") + 1Application.UnLock()%><h3>This page has been visited<%=Application("Visits")%> times.</h3>Application 小案例
在 ASP 剛問世時候,有很多使用 ASP 製作的聊天室,它的原理就是利用 Application 集合是訪問網站所有使用者共用的特點,將所有使用者所發表的聊天句都儲存在 Application 中。
當然這樣的方法需要佔用比較大的伺服器記憶體資源,因此已經很少在使用了。
本例代碼如下(ChatRoom.asp):
<%If UCase(Trim(Request.ServerVariables("REQUEST_METHOD"))) = "POST" Then Dim sCurrentWord sCurrentWord = Trim(Request.Form("word")) Application.Lock() Application("chatroom") = Application("chatroom") & "<br>" & Session.SessionID & "->" & sCurrentWord Application.UnLock()End If%><h3>以下是聊天室的內容:</h3><p><%=Application("chatroom")%></p><hr><form method="post" action="">請輸入要說的話:<input name="Word" type="text"/><input type="submit" value="發送"/></form>
運行後,輸入密碼登入,如:
輸入你要說的話,並按“發送”按鈕發送出去。利用多個終端登入該頁面,進行聊天。
範例程式碼下載
Application.rar
ASP入門(十一)-Application對象