拡張 <OBJECT> タグを使うと、オブジェクトを作成できます。セッション スコープまたはアプリケーション スコープを持つオブジェクトを Global.asa の中で作成できます。このタグは自己包含タグであり、ほかのすべての <SCRIPT> とは別に処理されます。
Global.asa ファイルで宣言されたオブジェクトは、サーバーがそのオブジェクトを参照するスクリプトを処理するまで作成されません。これにより、必要なオブジェクトだけが作成され、リソースが節約されます。
注意 サーバーは、アプリケーション スコープで作成されたオブジェクトに対して、OnStartPage メソッドおよび OnEndPage メソッドを呼び出すことはありません。
<OBJECT RUNAT=Server SCOPE=Scope ID=Identifier
{PROGID="progID"|CLASSID="ClassID"}>
.
. .
</OBJECT>
Scope
オブジェクトのスコープを指定します。Global.asa ファイルでは、Scope は "Session" または "Application" のどちらかです。
Identifier
オブジェクト インスタンスの名前を指定します。
ProgID
クラス識別子に関連付ける識別子です。<OBJECT> タグの中では、ProgID または ClassID のどちらかを必ず指定します。ProgID の形式は [Vendor.]Component[.Version] です。
ClassID
OLD クラス オブジェクトに対する一意な識別子を指定します。<OBJECT> タグの中では、ProgID または ClassID のどちらかを必ず指定します。
次に示す 1 番目のスクリプト例は、ProgID パラメータを使って MyConnection という名前のセッション スコープのオブジェクトを作成します。2 番目のスクリプト例では ClassID パラメータを使っています。
<OBJECT RUNAT=Server SCOPE=Session ID=MyConnection
PROGID="ADODB.Connection"> REM Object Script </OBJECT> <OBJECT RUNAT=Server SCOPE=Session ID=MyConnection
CLASSID="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21"> REM Object Script </OBJECT>
Global.asa ファイルで宣言したオブジェクトは、アプリケーションの任意のスクリプトから使用できます。たとえば、次のようにオブジェクトを宣言したとします。
---GLOBAL.ASA--- <OBJECT RUNAT=Server SCOPE=Session ID=MyAd PROGID="MSWC.AdRotator"> </OBJECT>
この場合、このオブジェクトは MyAd という名前でアプリケーションの任意のページから次のように参照できます。
---SOME.ASP--- <%= MyAd.GetAdvertisement("/ads/adrot.txt") %>