ASPアプリケーションオブジェクト
連携して何らかの目的を実行するASPファイルのグループは、アプリケーションと呼ばれます。
アプリケーションオブジェクト
Web上のアプリケーションは、いくつかの目的を実行するために連携して機能する複数のASPファイルで構成されている場合があります。Applicationオブジェクトは、これらのファイルを結び付けるために使用されます。
Applicationオブジェクトは、Sessionオブジェクトと同様に、任意のページから変数を格納およびアクセスするために使用されます。違いは、すべてのユーザーが1つのアプリケーションオブジェクトを共有することです(セッションでは、各ユーザーに1つのセッションオブジェクトがあります)。
Applicationオブジェクトは、アプリケーションの多くのページで使用される情報(データベース接続情報など)を保持します。情報はどのページからでもアクセスできます。情報を一箇所で変更することもでき、変更内容はすべてのページに自動的に反映されます。
アプリケーション変数の保存と取得
アプリケーション変数は、アプリケーションの任意のページからアクセスおよび変更できます。
次のように、「Global.asa」にアプリケーション変数を作成できます。
<script language="vbscript" runat="server">
Sub Application_OnStart
application("vartime")=""
application("users")=1
End Sub
</script>
上記の例では、「vartime」と「users」の2つのアプリケーション変数を作成しました。
次のように、アプリケーション変数の値にアクセスできます。
There are
<%
Response.Write(Application("users"))
%>
active connections.
コンテンツコレクションをループする
コンテンツコレクションには、すべてのアプリケーション変数が含まれています。コンテンツコレクションをループして、何が保存されているかを確認できます。
<%
dim i
For Each i in Application.Contents
Response.Write(i & "<br>")
Next
%>
コンテンツコレクション内のアイテムの数がわからない場合は、Countプロパティを使用できます。
<%
dim i
dim j
j=Application.Contents.Count
For i=1 to j
Response.Write(Application.Contents(i) & "<br>")
Next
%>
StaticObjectsコレクションをループします
StaticObjectsコレクションをループして、Applicationオブジェクトに格納されているすべてのオブジェクトの値を確認できます。
<%
dim i
For Each i in Application.StaticObjects
Response.Write(i & "<br>")
Next
%>
ロックとロック解除
「Lock」メソッドを使用してアプリケーションをロックできます。アプリケーションがロックされている場合、ユーザーはアプリケーション変数(現在アクセスしているもの以外)を変更できません。「ロック解除」方式でアプリケーションのロックを解除できます。このメソッドは、アプリケーション変数からロックを削除します。
<%
Application.Lock
'do some application object operations
Application.Unlock
%>