ASP Applicationオブジェクト


一緒に連携して特定のタスクを実行する ASP ファイルのグループは、アプリケーションと呼ばれます。


Application オブジェクト

Web 上のアプリケーションは、ASP ファイルのグループです。これらの ASP ファイルは連携して特定のタスクを実行します。ASP の Application オブジェクトは、これらのファイルをまとめるために使用されます。

Application オブジェクトは、任意のページから変数を保存およびアクセスするために使用され、Session オブジェクトに似ています。違いは、すべてのユーザーが 1 つの Application オブジェクトを共有するのに対し、Session オブジェクトとユーザーの関係は 1 対 1 であることです。

Application オブジェクトには、アプリケーション内の多くのページで使用される情報(データベース接続情報など)が保存されます。これらの情報には任意のページからアクセスできます。また、1 か所でこれらの情報を変更すると、その変更は自動的にすべてのページに反映されます。


Application 変数の保存と取得

Application 変数は、アプリケーション内の任意のページからアクセスおよび変更できます。

次のように、"Global.asa" で Application 変数を作成できます:

<script language="vbscript" runat="server">

Sub Application_OnStart
application("vartime")=""
application("users")=1
End Sub

</script>

上記の例では、"vartime" と "users" という 2 つの Application 変数を作成しました。

次のように、Application 変数の値にアクセスできます:

There are
<%
Response.Write(Application("users"))
%>
active connections.


Contents コレクションの反復処理

Contents コレクションには、すべての application 変数が含まれます。Contents コレクションを反復処理することで、保存されている変数を確認できます:

<%
dim i
For Each i in Application.Contents
Response.Write(i & "<br>")
Next
%>

Contents コレクション内の項目数が不明な場合は、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 変数を変更できなくなります(Application 変数にアクセスしているユーザーを除く)。また、"Unlock" メソッドを使用してアプリケーションのロックを解除できます。このメソッドは Application 変数へのロックを解除します:

<%
Application.Lock
'do some application object operations
Application.Unlock
%>

その他の拡張