Berkas Global.asa ASP

Fail Global.asa adalah fail pilihan, ia boleh mengandungi deklarasi objek, pembolehubah dan kaedah yang dapat diakses oleh setiap halaman aplikasi ASP. Semua skrip pelayar yang sah boleh digunakan di dalam Global.asa.

Fail Global.asa

Fail Global.asa adalah fail pilihan, ia boleh mengandungi deklarasi objek, pembolehubah dan kaedah yang dapat diakses oleh setiap halaman aplikasi ASP. Semua skrip pelayar yang sah boleh digunakan di dalam Global.asa.

Fail Global.asa boleh mengandungi kandungan berikut:

  • Peristiwa Aplikasi
  • Peristiwa Sesyen
  • Pengumuman <object>
  • Pengumuman TypeLibrary
  • Perintah #include

Keterangan:Fail Global.asa mesti disimpan di dalam direktori utama aplikasi ASP, dan setiap aplikasi hanya boleh mempunyai satu fail Global.asa.

Peristiwa di Global.asa

Di berkas Global.asa, kami dapat memberitahu apa yang dilakukan objek application dan session di awal dan akhir. Kode yang menyelesaikan tugas ini disimpan di operator peristiwa. Berkas Global.asa dapat mengandung empat jenis peristiwa:

Application_OnStart - Peristiwa ini akan terjadi setiap kali pengguna pertama memanggil halaman pertama di aplikasi ASP. Peristiwa ini akan terjadi saat server web dimulai ulang atau berkas Global.asa diedit. Peristiwa 'Session_OnStart' akan terjadi segera setelah peristiwa ini terjadi.

Session_OnStart - Peristiwa ini akan terjadi setiap kali pengguna meminta halaman pertama di aplikasi ASP-nya.

Session_OnEnd - Peristiwa ini akan terjadi setiap kali pengguna menutup sesi. Jika dalam waktu yang ditentukan (peristiwa standar adalah 20 menit) tidak ada halaman yang diminta, sesi akan berakhir.

Application_OnEnd - Peristiwa ini akan terjadi setelah pengguna terakhir menutup sesi. Kondisi tipikal adalah, peristiwa ini akan terjadi saat server web berhenti. Subprogram ini digunakan untuk membersihkan pengaturan setelah aplikasi berhenti, seperti menghapus catatan atau menulis informasi ke berkas teks.

Berkas Global.asa mungkin seperti ini:

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

Keterangan:Karena tidak dapat memasukkan skrip di berkas Global.asa menggunakan simbol pemisah skrip ASP (<% dan %>), kami perlu menggunakan elemen <script> HTML.

Pengumuman <object>

Bisa menggunakan tanda <object> untuk membuat objek dengan lingkungan session atau application di berkas Global.asa.

Keterangan:Tanda <object> seharusnya berada di luar tanda <script>.

Sintaks:

<object runat="server" scope="scope" id="id"
{progid="progID"|classid="classID"}>
....
</object>
Parameter Penerangan
scope Tetapkan lingkungan objek (luas pengaruh) (Session atau Application).
id Tentukan id unik bagi objek.
ProgID

ID yang berhubungan dengan ClassID. Format ProgID adalah: [Vendor.]Komponen[.Versi].

ProgID atau ClassID mesti ditentukan.

ClassID

Tentukan id unik bagi objek kelas COM.

ProgID atau ClassID mesti ditentukan.

instansi

Contoh pertama menciptakan objek yang dinamakan "MyAd" dan menggunakan parameter ProgID untuk objek area tugas session:

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

Contoh kedua menciptakan objek yang dinamakan "MyConnection" menggunakan parameter ClassID.

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

Objek yang diumumkan di berkas Global.asa ini dapat digunakan oleh semua skrip di aplikasi.

GLOBAL.ASA:

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

Dapat mengacu kepada objek "MyAd" ini dari halaman apapun di aplikasi ASP:

Berkas .ASP:

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

Pengumuman TypeLibrary

TypeLibrary (Pustaka Tipe) adalah wadah yang mengandung berkas DLL yang sesuai dengan objek COM. Dengan memasukkan panggilan TypeLibrary di Global.asa, dapat mengakses konstanta objek COM, dan kode ASP juga dapat melaporkan kesalahan dengan lebih baik. Jika aplikasi situs Anda menggantung objek COM yang telah diumumkan di pustaka tipe, dapat mengumumkan pustaka tipe di Global.asa.

Sintaks:

<!--METADATA TYPE="TypeLib"
file="filename"
uuid="typelibraryuuid"
version="versionnumber"
lcid="localeid"
-->
Parameter Penerangan
file Menentukan jalur absolut ke pustaka tipe. Parameter file atau uuid, keduanya wajib.
uuid Menentukan penanda unik untuk pustaka tipe. Parameter file atau uuid, keduanya wajib.
version Pilihan. Diperuntukkan untuk memilih versi. Jika versi yang ditentukan tidak ditemukan, versi yang paling dekat akan digunakan.
lcid Pilihan. Diperuntukkan untuk penanda wilayah pustaka tipe.

Nilai kesalahan

Server akan mengembalikan salah satu pesan kesalahan di bawah ini:

Kesalahan Kode Penerangan
ASP 0222 Spesifikasi pustaka tipe yang salah
ASP 0223 Type library not found
ASP 0224 Type library cannot be loaded
ASP 0225 Type library cannot be wrapped

Keterangan:Tag METADATA dapat berada di mana saja di dalam file Global.asa (baik di dalam maupun di luar tag <script>). Walaupun demikian, kami tetap menyarankan untuk meletakkan tag METADATA di bagian atas file Global.asa.

Batasan

Dengan batasan tentang yang dapat diambil referensi dalam file Global.asa:

Anda tidak dapat menampilkan teks di dalam file Global.asa. File ini tidak dapat menampilkan informasi.

Anda hanya dapat menggunakan objek Server dan Application di dalam sub-routine Application_OnStart dan Application_OnEnd. Dalam sub-routine Session_OnEnd, anda dapat menggunakan objek Server, Application, dan Session. Dalam sub-routine Session_OnStart, anda dapat menggunakan setiap objek bawaan.

Bagaimana untuk menggunakan sub-routine

Global.asa sering digunakan untuk menginisialisasi variabel.

Contoh di bawah menunjukkan bagaimana waktu pengunjung pertama kali tiba di situs dapat dideteksi. Waktu ini disimpan di objek Session yang dinamai "started", dan nilai variabel "started" dapat diakses oleh setiap halaman ASP dalam aplikasi:

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

Global.asa juga dapat digunakan untuk mengawasi akses halaman.

Contoh di bawah menunjukkan bagaimana setiap pengunjung baru dapat diarahkan ke halaman lain, di contoh ini akan diarahkan ke halaman "newpage.asp":

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

Kami juga dapat menyertakan fungsi di Global.asa.

Dalam contoh di bawah, apabila penghentian web server dijalankan, sub-routine Application_OnStart juga akan dijalankan. Setelah itu, sub-routine Application_OnStart akan memanggil sub-routine lain yang dinamai "getcustomers". Sub-routine "getcustomers" akan membuka database, kemudian mengambil set rekod dari tabel "customers". Set rekod ini akan diisi ke dalam array, tanpa memerlukan kueri ke database, setiap halaman ASP dapat mengakses array ini:

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

Contoh Global.asa

Dalam contoh ini, kita akan membuat fail Global.asa yang dapat menghitung kunjungan saat ini.

Application_OnStart menetapkan nilai variabel Application "visitors" menjadi 0 saat server memulai.

Ketika pengguna baru mengakses, prosedur Session_OnStart akan menambahkan 1 ke nilai variabel "visitors".

Ketika prosedur Session_OnEnd diaktifkan, prosedur ini akan mengurangkan nilai variabel "visitors" dengan 1.

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

Failah ASP akan menunjukkan bilangan pengguna sekarang:

<html>
<head>
</head>
<body>
<p>Ada <%response.write(Application("visitors"))%> yang online sekarang!</p>
</body>
</html>