最新のWeb開発のチュートリアル
 

ASP Global.asaファイル


Global.asaファイル

Global.asaファイルはASPアプリケーションのすべてのページでアクセスできるオブジェクト、変数、メソッドの宣言を含めることができるオプションのファイルです。

すべての有効なブラウザスクリプト(JavaScript, VBScript, JScript, PerlScript, etc.)のGlobal.asa内で使用することができます。

Global.asaファイルは次のことを含めることができます。

  • アプリケーションイベント
  • セッションイベント
  • <オブジェクト>の宣言
  • TypeLibraryの宣言
  • #includeディレクティブ

Note: Global.asaファイルはASPアプリケーションのルートディレクトリに格納されている必要があり、各アプリケーションは、唯一のGlobal.asaファイルを持つことができます。


Global.asaのイベント

Global.asaでは、アプリケーションとセッションをするときのアプリケーション/セッションが開始され、どのようなアプリケーション/セッションが終了行うには何をすべきかオブジェクトを伝えることができます。 このためのコードは、イベントハンドラ内に配置されています。 Global.asaファイルは、イベントの4種類を含めることができます。

Application_OnStart - FIRSTユーザーがASPアプリケーションで最初のページを呼び出したときに発生します。 Webサーバーが再起動された後、またはGlobal.asaファイルを編集した後、このイベントが発生します。 "Session_OnStart"イベントは、このイベントの直後に発生します。

Session_OnStart -このイベントは、新しいユーザーがASPアプリケーションで彼または彼女の最初のページを要求するたびに発生します。

Session_OnEnd -このイベントは、ユーザーがセッションを終了するたびに発生します。 ページが指定された時間のために、ユーザによって要求されていない後、ユーザーセッションは終了し(by default this is 20 minutes)

Application_OnEnd - LASTユーザーがセッションを終了した後に、このイベントが発生します。 Webサーバーが停止した場合、通常、このイベントが発生します。 アプリケーションがレコードを削除したり、テキストファイルに情報を書き込むように、停止した後にこの手順は、設定をクリーンアップするために使用されます。

Global.asaファイルは次のようになります:

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

sub Application_OnStart
' Note:私たちはASPスクリプト区切り文字を使用することはできませんので(<% and %>) Global.asaファイルにスクリプトを挿入するために、我々は、HTML内のサブルーチンを置く<script>要素。


<オブジェクト>の宣言

使用してのGlobal.asaでセッションまたはアプリケーションスコープを持つオブジェクトを作成することが可能である<object>タグ。

Note: <object>タグが外にする必要があります<script>タグ!

構文

<object runat="server" scope=" パラメーター 説明 scope オブジェクトのスコープ設定(either Session or Application) id オブジェクトの一意のIDを指定します。 ProgID クラスIDに関連付けられたID。 プログラムIDの形式は、[ベンダー。]である成分[.Version]

プログラムIDまたはのClassIDのいずれかを指定する必要があります。

ClassID COMクラスオブジェクトの一意のIDを指定します。

プログラムIDまたはのClassIDのいずれかを指定する必要があります。

最初の例では、名前のセッションスコープのオブジェクト作成"MyAd"プログラムIDパラメータを使用しました:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator">
</object>

第二の例では、名前のアプリケーションスコープのオブジェクト作成"MyConnection"のClassIDパラメータを使用しました:

<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object>

Global.asaファイルで宣言されたオブジェクトは、アプリケーション内の任意のスクリプトで使用することができます。

GLOBAL.ASA:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator">
</object>

You could reference the object "MyAd" from any page in the ASP application:

SOME .ASP FILE:

<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>

TypeLibraryの宣言

TypeLibraryのCOMオブジェクトに対応したDLLファイルの内容のための容器です。 Global.asaファイル内のTypeLibraryへの呼び出しを含めることによって、COMオブジェクトの定数にアクセスすることができ、エラーが良好ASPコードによって報告することができます。 Webアプリケーションは、タイプライブラリのデータ型を宣言したCOMオブジェクトに依存している場合は、Global.asaをタイプライブラリを宣言することができます。

構文

<!--METADATA TYPE="TypeLib"
file=" パラメーター 説明 file タイプライブラリへの絶対パスを指定します。

ファイルパラメータまたはUUIDパラメータのいずれかが必要です

uuid タイプライブラリの一意の識別子を指定します。

ファイルパラメータまたはUUIDパラメータのいずれかが必要です

version 任意。 バージョンを選択するために使用します。 要求されたバージョンが見つからない場合は、最新バージョンが使用されています lcid 任意。 タイプライブラリに使用するロケール識別子

エラー値

サーバーは、次のいずれかのエラーメッセージを返すことができます。

エラーコード 説明
ASP 0222 無効なタイプライブラリの仕様
ASP 0223 タイプライブラリが見つかりません
ASP 0224 タイプライブラリをロードすることはできません
ASP 0225 タイプライブラリをラップすることはできません

Note:メタデータタグは、Global.asaファイルのどこにでも現れることができます(both inside and outside <script> tags) しかし、メタデータタグは、Global.asaファイルの上部付近に現れることをお勧めします。


制限事項

あなたはGlobal.asaファイルに含めることができるかについての制限事項:

  • あなたはGlobal.asaファイルで記述されたテキストを表示することはできません。 このファイルには、情報を表示することはできません
  • あなただけのApplication_OnStartとのApplication_OnEndサブルーチンでサーバーとアプリケーションのオブジェクトを使用することができます。 いるSession_OnEndサブルーチンでは、サーバー、アプリケーション、およびSessionオブジェクトを使用することができます。 Session_OnStartサブルーチンでは、任意の組み込みのオブジェクトを使用することができます

サブルーチンの使い方

Global.asaは、多くの場合、変数を初期化するために使用されます。

以下の例では、訪問者が最初のWebサイトに到着した正確な時刻を検出する方法を示しています。 時間は、名前のセッション変数に格納され"started" 、との値が"started"変数は、アプリケーション内の任意のASPページからアクセスすることができます。

<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end sub
</script>

Global.asaは、ページへのアクセスを制御するために使用することができます。

以下の例は、呼び出されたページに、この場合には、別のページにすべての新しい訪問者をリダイレクトする方法を示し"newpage.asp"

<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>

そして、あなたはGlobal.asaファイル内の関数を含めることができます。

Webサーバーの起動時にApplication_OnStartサブルーチン以下の例で起こります。 そして、Application_OnStartサブルーチンは名前の別のサブルーチンコールする"getcustomers""getcustomers"サブルーチンは、データベースを開いてからレコードセットを取得し"customers"テーブル。 レコードセットは、データベースを照会することなく、任意のASPページからアクセス可能なアレイに割り当てられます。

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

sub Application_OnStart
getcustomers
end sub

sub getcustomers
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=conn.execute("select name from customers")
Application("customers")=rs.GetRows
rs.Close
conn.Close
end sub

</script>

Global.asaを例

この例では、現在の訪問者数をカウントGlobal.asaファイルを作成します。

  • Application_OnStartは、アプリケーション変数に設定"visitors" 、サーバの起動時に0に
  • Session_OnStartサブルーチンは、変数に1を加え"visitors"の新しい訪問者が到着するたびに、
  • いるSession_OnEndサブルーチンから1を減算し"visitors" 、このサブルーチンがトリガされるたびに

Global.asaファイル:

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

Sub Application_OnStart
Application("visitors")=0
End Sub

Sub Session_OnStart
Application.Lock
Application("visitors")=Application("visitors")+1
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
Application("visitors")=Application("visitors")-1
Application.UnLock
End Sub

</script>

ASPファイル内の現在の訪問者数を表示するには:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%> online now!</p>
</body>
</html>