ASP Global.asa



Fail Global.asa

Fail Global.asa ialah fail pilihan yang mengandungi pengisytiharan objek, pembolehubah dan kaedah yang diakses oleh setiap halaman dalam aplikasi ASP .

Semua skrip penyemak imbas yang sah (JavaScript, VBScript, JScript, PerlScript, dll.) boleh digunakan dalam Global.asa.

Fail Global.asa hanya boleh mengandungi kandungan berikut:

  • Acara permohonan

  • Acara sesi

  • <objek> pengisytiharan

  • Pengisytiharan TypeLibrary

  • #include directive

<🎜

Nota: Fail Global.asa mesti disimpan dalam direktori akar aplikasi ASP dan setiap aplikasi hanya boleh mempunyai satu fail Global.asa.


Acara dalam Global.asa

Dalam Global.asa anda boleh memberitahu aplikasi dan objek sesi apa yang perlu dilakukan apabila aplikasi/sesi bermula dan perkara yang perlu dilakukan apabila aplikasi/sesi berakhir Apa. Kod untuk menyelesaikan tugas ini diletakkan dalam pengendali acara. Fail Global.asa boleh mengandungi empat jenis acara:

Application_OnStart - Acara ini berlaku apabila pengguna pertama memanggil halaman pertama aplikasi ASP. Peristiwa ini berlaku selepas pelayan web dimulakan semula atau fail Global.asa diedit. Acara "Session_OnStart" berlaku serta-merta selepas acara ini.

Session_OnStart - Acara ini berlaku apabila pengguna baharu meminta halaman pertamanya dalam aplikasi ASP.

Session_OnEnd - Acara ini berlaku apabila pengguna menamatkan sesi. Jika pengguna tidak meminta mana-mana halaman dalam masa yang ditetapkan (masa lalai ialah 20 minit), sesi pengguna akan tamat.

Application_OnEnd - Acara ini berlaku selepas pengguna terakhir menamatkan sesi mereka. Biasanya, peristiwa ini berlaku apabila pelayan web dihentikan. Subrutin ini digunakan untuk mengosongkan tetapan selepas aplikasi dihentikan, seperti memadamkan rekod atau menulis maklumat pada fail teks.

Fail Global.asa mungkin kelihatan seperti ini:

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

sub Application_OnStart
'beberapa kod
tamatkan sub

sub Application_OnEnd
'beberapa kod
tamatkan sub

sub Session_OnStart
'beberapa kod
tamatkan sub

sub Session_OnEnd
'beberapa kod
tamatkan sub

</skrip>

Nota: Memandangkan kami tidak boleh memasukkan skrip menggunakan pembatas skrip ASP (<% dan %>) dalam fail Global.asa, kami perlu meletakkan subrutin dalam HTML < ;


<objek> Pengisytiharan

boleh mencipta objek dengan sesi atau skop aplikasi dalam fail Global.asa dengan menggunakan teg <objek>

Nota: Teg <objek> harus berada di luar teg <skrip>

Sintaks

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

ParameterPenerangan
skopTetapkan objek ( Sesi atau Permohonan) skop.
idMenentukan id unik untuk objek.
ProgIDId yang dikaitkan dengan ClassID. Format ProgID ialah: [Vendor.]Component[.Version].
参数描述
scope设置对象(Session 或 Application)的作用域。
id为对象指定一个唯一的 id。
ProgID与 ClassID 关联的 id。ProgID 的格式是:[Vendor.]Component[.Version]。

ProgID 或 ClassID 必需被指定。

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

ProgID 或 ClassID 必需被指定。

ProgID atau ClassID mesti dinyatakan. <🎜>
ClassIDTentukan id unik untuk objek kelas COM. <🎜>ProgID atau ClassID mesti dinyatakan. <🎜>

Instance

Tata pertama mencipta objek skop sesi bernama "MyAd" dengan menggunakan parameter ProgID:

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

Acara kedua mencipta objek skop aplikasi bernama "MyConnection" dengan menggunakan parameter ClassID:

<objek runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
< 🎜>
Objek yang diisytiharkan dalam fail Global.asa boleh digunakan oleh mana-mana skrip dalam aplikasi:

GLOBAL.ASA:

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

Anda boleh merujuk objek "MyAd" dari mana-mana halaman dalam aplikasi ASP anda:

Fail .ASP :

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


Pengisytiharan TypeLibrary

TypeLibrary (pustaka jenis) ialah bekas yang mengandungi fail DLL yang sepadan dengan objek COM. Dengan memasukkan panggilan ke TypeLibrary dalam fail Global.asa, anda boleh mengakses pemalar objek COM dan kod ASP anda boleh melaporkan ralat dengan lebih baik. Jika aplikasi Web anda bergantung pada objek COM jenis data yang telah diisytiharkan dalam perpustakaan jenis, anda boleh mengisytiharkan perpustakaan jenis dalam Global.asa.

Sintaks

<!--METADATA TYPE="TypeLib"
file="
nama fail" uuid="id" version="nombor" lcid="localeid"-->
< tr>
ParameterPenerangan
failMenentukan laluan mutlak ke perpustakaan jenis.
parameter fail atau parameter uuid, kedua-duanya amat diperlukan.
参数描述
file规定指向类型库的绝对路径。

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

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

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

version可选。用于选择版本。如果没有找到需要的版本,将使用最接近的版本。
lcid可选。用于类型库的地区标识符。
uuid menentukan pengecam unik pustaka jenis. <🎜>parameter fail atau parameter uuid, kedua-duanya amat diperlukan. <🎜>
versiPilihan. Digunakan untuk memilih versi. Jika versi yang diperlukan tidak ditemui, versi terdekat akan digunakan.
lcidPilihan. Pengecam tempat yang digunakan untuk perpustakaan jenis.

Nilai ralat

Pelayan akan mengembalikan salah satu daripada mesej ralat berikut:

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

Nota: Teg METADATA boleh muncul di mana-mana dalam fail Global.asa (sama ada di dalam atau di luar teg <skrip>). Walau bagaimanapun, kami masih mengesyorkan meletakkan teg METADATA di bahagian atas fail Global.asa.


Penghadan

Penghadan pada perkara yang boleh dirujuk dalam fail Global.asa:

  • Anda tidak boleh memaparkan kandungan dalam Global.asa teks fail. Tiada maklumat boleh dipaparkan pada fail ini.

  • Anda hanya boleh menggunakan objek Pelayan dan Aplikasi dalam subrutin Application_OnStart dan Application_OnEnd. Dalam subrutin Session_OnEnd, anda boleh menggunakan objek Pelayan, Aplikasi dan Sesi. Dalam subrutin Session_OnStart, anda boleh menggunakan sebarang objek terbina dalam.


Cara menggunakan subrutin

Global.asa sering digunakan untuk memulakan pembolehubah.

Contoh berikut menunjukkan cara untuk mengesan masa yang tepat apabila pelawat mula-mula tiba di tapak web. Masa disimpan dalam objek Sesi bernama "mula", dan nilai pembolehubah "mula" boleh diakses oleh mana-mana halaman ASP dalam aplikasi:

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

Global.asa juga tersedia Untuk mengawal capaian halaman.

Contoh berikut menunjukkan cara untuk mengubah hala setiap pelawat baharu ke halaman lain, dalam kes ini halaman bernama "newpage.asp":

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

Anda boleh memasukkan fungsi dalam fail Global.asa.

Dalam contoh berikut, apabila pelayan web bermula, subrutin Application_OnStart juga bermula. Subrutin Application_OnStart kemudian memanggil subrutin lain bernama "getcustomers". Subrutin "getcustomers" membuka pangkalan data dan mendapatkan set rekod daripada jadual "pelanggan". Set rekod ini diberikan kepada tatasusunan dan mana-mana halaman ASP boleh mengakses tatasusunan ini tanpa menanyakan pangkalan data:

<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.Buka "c:/webdata/northwind.mdb"
set rs=conn.execute("pilih nama daripada pelanggan")
Application("customers")=rs .GetRows
rs.Tutup
sambung.Tutup
tamat sub

</skrip>


Contoh Global.asa

Dalam contoh ini, kami akan mencipta fail Global.asa yang mengira bilangan pelawat semasa.

  • Apabila pelayan bermula, Application_OnStart menetapkan nilai pembolehubah Aplikasi "pelawat" kepada 0.

  • Setiap kali pelawat baharu datang, subrutin Session_OnStart akan menambah 1 pada pembolehubah "pelawat".

  • Setiap kali subrutin Session_OnEnd dicetuskan, subrutin itu mengurangkan pembolehubah "pelawat" sebanyak 1.

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

Dalam fail ASP, paparkan bilangan pelawat semasa:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>Terdapat <%response.write (Aplikasi("pelawat"))%> dalam talian sekarang!</p>
</body>
</html>