Latest web development tutorials

ASPのGlobal.asa

Global.asaファイル

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

すべての合法的なブラウザスクリプト(JavaScriptやVBScriptの、JScriptでは、Perlスクリプトなど)のGlobal.asaで使用することができます。

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

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

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


Global.asaイベント

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

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

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

いるSession_OnEnd -このイベントは、いつでも、エンドユーザセッションを発生します。ユーザーが任意のページを要求しない場合は、ユーザー・セッションは、所定の時間内に終了します(デフォルトの時間は20分です)。

Application_OnEnd -ユーザーの後にこのイベントが発生し、最後の彼らのセッションを終了します。Webサーバが停止しているとき、通常、イベントが発生します。 このサブルーチンは、削除レコードとしてパージ設定を停止するか、テキストファイルに情報を書き込むために適用した後に使用されます。

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

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

sub Application_OnStart
'some code
end sub

sub Application_OnEnd
'some code
end sub

sub Session_OnStart
'some code
end sub

sub Session_OnEnd
'some code
end sub

</script>

注:我々は、ASPスクリプト区切り文字(<%と%>)を使用することはできませんので、Global.asaファイル内のスクリプトを挿入し、我々は内部のHTMLの<script>要素に配置されたルーチンを処理する必要があります。


<オブジェクト>ステートメント

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

注:<object>タグは、外部の<script>タグにする必要があります!

文法

<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}>
....
</object>

参数 描述
scope 设置对象(Session 或 Application)的作用域。
id 为对象指定一个唯一的 id。
ProgID 与 ClassID 关联的 id。ProgID 的格式是:[Vendor.]Component[.Version]。

ProgID 或 ClassID 必需被指定。

ClassID 为 COM 类对象指定一个唯一的 id。

ProgID 或 ClassID 必需被指定。

の「MyAd」と呼ばれるセッションスコープのオブジェクトを作成するためにProgIDのパラメータを使用して、最初のインスタンス:

<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>

您可以从 ASP 应用程序中的任意页面引用 "MyAd" 对象:

某个 .ASP 文件:

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


TypeLibraryの声明

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

文法

<!--METADATA TYPE="TypeLib"
file="filename" uuid="id" version="number" lcid="localeid"
-->

参数 描述
file 规定指向类型库的绝对路径。

file 参数或者 uuid 参数,两者缺一不可。

uuid 规定了类型库的唯一的标识符。

file 参数或者 uuid 参数,两者缺一不可。

version 可选。用于选择版本。如果没有找到需要的版本,将使用最接近的版本。
lcid 可选。用于类型库的地区标识符。

エラー値

サーバーは、次のエラーメッセージのいずれかを返します。

错误代码 描述
ASP 0222 无效的类型库规范
ASP 0223 没有找到类型库
ASP 0224 无法加载类型库
ASP 0225 无法包装类型库

注:のGlobal.asa内のメタデータタグ、(タグすることができます。<script>は、内外の)が表示されます任意の場所にファイルを。しかし、我々はまだGlobal.asaファイルの最上部に配置されたメタデータタグをお勧めします。


限られました

Global.asaファイルは、定義されたコンテンツの中で参照することができます。

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

サブルーチンの使い方

Global.asaは、一般的に、変数を初期化するために使用されます。

次の例では、最初に到着したWebサイトの訪問者の正確な時刻を検出する方法を示しています。 時間が名前のSessionオブジェクトに格納されている中で、「開始」、との値は、変数が任意の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」サブルーチンは、データベースをオープンし、「顧客」テーブルからレコードセットを取得します。 このレコードは、任意の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は、アプリケーション変数 "訪問者"を設定0です。
  • 新しい訪問者が訪ねてくるたびに、とSession_OnStartサブルーチンは、変数「訪問者」を加えたものになります。
  • いるSession_OnEndサブルーチンがトリガーされるたびに、サブルーチンは1変数 "訪問者"から差し引きます。

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>