ホームページ  >  記事  >  バックエンド開発  >  ASP の Global.asa ファイルの詳細な紹介

ASP の Global.asa ファイルの詳細な紹介

Y2J
Y2Jオリジナル
2017-05-19 10:55:301482ブラウズ

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

Global.asa ファイル

Global.asa ファイルは、ASP アプリケーションのすべてのページからアクセスできるオブジェクト、変数、メソッドの宣言を含むことができるオプションのファイルです。 Global.asa では、すべての合法的なブラウザ スクリプトを使用できます。

Global.asa ファイルには次のコンテンツを含めることができます:

アプリケーション イベント

セッション イベント

273238ce9338fbb04bee6997e5552b95 宣言

TypeLibrary 宣言

#include ディレクティブ

注: Global.asa ファイルは次の場所に保存する必要があります。 ASP アプリケーションはプログラムのルート ディレクトリにあり、アプリケーションごとに Global.asa ファイルは 1 つだけ存在できます。

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
  &#39;some code
end sub
sub Application_OnEnd
  &#39;some code
end sub
sub Session_OnStart
  &#39;some code
end sub
sub Session_OnEnd
  &#39;some code
end sub
</script>

注: Global.asa ファイルにスクリプトを挿入するのに ASP のスクリプト区切り文字 (d9407eeb874fb6aa5a46150acc74a5f3) を使用できないため、HTML の < を使用する必要があります。 ; script> 要素。

273238ce9338fbb04bee6997e5552b95 宣言

は、273238ce9338fbb04bee6997e5552b95 タグを使用して、Global.asa ファイル内にセッション スコープまたはアプリケーション スコープを持つオブジェクトを作成できます。

注: 273238ce9338fbb04bee6997e5552b95 タグは 3f1c4e4b6b16bbbd69b2ee476dc4f83a タグの外側にある必要があります。

構文:

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

パラメータ。

id オブジェクトの一意の ID を指定します。

ProgID ClassID に関連付けられた ID。 ProgID の形式は、[Vendor.]Component[.Version] です。 ProgID または ClassID を指定する必要があります。

ClassID COM クラス オブジェクトの一意の ID を指定します。 ProgID または ClassID を指定する必要があります。

インスタンス

最初のインスタンスは、ProgID パラメーターを使用して「MyAd」という名前のセッション スコープ オブジェクトを作成します。

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

2 番目のインスタンスは、ClassID パラメーターを使用して「MyConnection」という名前のセッション スコープ オブジェクトを作成します

<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 (タイプ ライブラリ) はコンテナー、DLL ファイルですCOM オブジェクトに対応するものがインストールされます。 Global.asa に TypeLibrary への呼び出しを含めることで、COM オブジェクトの定数にアクセスできるようになり、ASP コードでエラーをより適切に報告できるようになります。サイトのアプリケーションが、データ型がタイプ ライブラリで宣言されている COM オブジェクトに依存している場合は、Global.asa でタイプ ライブラリを宣言できます。

構文:

<!--METADATA TYPE="TypeLib"
file="filename"
uuid="typelibraryuuid"
version="versionnumber"
lcid="localeid"
-->

パラメータ 説明

file タイプ ライブラリへの絶対パスを指定します。パラメータファイルまたはuuid、両方とも必須です。

uuid は、タイプ ライブラリの一意の識別子を指定します。パラメータファイルまたはuuid、両方とも必須です。

バージョン オプション。バージョンを選択するために使用します。指定されたバージョンが見つからない場合は、最も近いバージョンが使用されます。

lcid オプション。タイプ ライブラリに使用されるロケール識別子。

エラー値

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

错误        代码        描述

ASP        0222        Invalid type library specification    

ASP        0223        Type library not found    

ASP        0224        Type library cannot be loaded    

ASP        0225        Type library cannot be wrapped    

注释:METADATA 标签可位于 Global.asa 文件中的任何位置(在 3f1c4e4b6b16bbbd69b2ee476dc4f83a 标签的内外均可)。不过,我们还是推荐将 METADATA 标签放置于 Global.asa 文件的顶部。

限定

关于可以在 Global.asa 文件中引用的内容的限定:

你无法显示 Global.asa 文件中的文本。此文件无法显示信息。

你只能在 Application_OnStart 和 Application_OnEnd 子例程中使用 Server 和 Application 对象。在 Session_OnEnd 子例程中,你可以使用 Server、Application 和 Session 对象。在 Session_OnStart 子例程中,你可使用任何内建的对象。

如何使用子例程

Global.asa 常用于对变量进行初始化。

下面的例子展示如何检测访问者首次到达站点的确切时间。时间存储在名为 "started" 的 Session 对象中,并且 "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 设置当服务器启动时,Application 变量 "visitors" 的值为 0。

每当有新用户访问时,Session_OnStart 子例程就会给变量 "visitors" 加 1。

每当 Session_OnEnd 子例程被触发时,此子例程就会从变量 "visitors" 减 1。

Global.asa 文件:

<script language="vbscript" runat="server">
Sub Application_OnStart
Application("visitors")=0
End Sub
Sub Session_OnStartApplication.LockApplication("visitors")=Application("visitors")+1Application.UnLockEnd SubSub Session_OnEndApplication.LockApplication("visitors")=Application("visitors")-1Application.UnLockEnd Sub</script>
此 ASP 文件会显示当

前用户的数目:

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

【相关推荐】

ASP免费视频教程

以上がASP の Global.asa ファイルの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。