File Global.asa ASP

Berkas Global.asa adalah berkas pilihan, yang dapat mengandung deklarasi objek, variabel, dan metode yang dapat diakses oleh setiap halaman aplikasi ASP. Semua skrip browser yang sah dapat digunakan di Global.asa.

Berkas Global.asa

Berkas Global.asa adalah berkas pilihan, yang dapat mengandung deklarasi objek, variabel, dan metode yang dapat diakses oleh setiap halaman aplikasi ASP. Semua skrip browser yang sah dapat digunakan di Global.asa.

Berkas Global.asa dapat mengandung konten berikut:

  • Peristiwa Application
  • Peristiwa Session
  • Pengumuman <object>
  • Pernyataan TypeLibrary
  • Perintah #include

Keterangan:Berkas Global.asa harus disimpan di direktori root aplikasi ASP, dan setiap aplikasi hanya dapat memiliki satu berkas Global.asa.

Peristiwa di Global.asa

Di berkas Global.asa, kami dapat memberitahu apa yang dilakukan objek aplikasi dan session pada saat mulai dan berakhir. Kode untuk menyelesaikan tugas ini disimpan di operator event. Berkas Global.asa dapat mengandung empat jenis event:

Application_OnStart - Event ini akan terjadi setiap kali pengguna pertama memanggil halaman pertama di aplikasi ASP. Event ini akan terjadi saat server web dimulai kembali atau berkas Global.asa diedit. Event "Session_OnStart" akan terjadi segera setelah event ini terjadi.

Session_OnStart - Event ini akan terjadi setiap kali pengguna membuat permintaan halaman pertama di aplikasi ASP.

Session_OnEnd - Event ini akan terjadi setiap kali pengguna menutup sesi mereka. Jika dalam waktu yang ditentukan (event standar adalah 20 menit) tidak ada halaman yang diinginkan, sesi akan berakhir.

Application_OnEnd - Event ini akan terjadi setelah pengguna terakhir menutup sesi mereka. Kondisi umumnya, event ini 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 script di berkas Global.asa tidak dapat digunakan penanda pemisah skrip ASP (<% dan %>), kami harus menggunakan elemen <script> HTML.

Pengumuman <object>

Bisa membuat objek dengan lingkungan session atau aplikasi menggunakan tag <object> di berkas Global.asa.

Keterangan:Tandai tag <object> berada di luar tag <script>.

Syarat:

<object runat="server" scope="scope" id="id"
{progid="progID"|classid="classID"}>
....
</object>
Parameter Deskripsi
scope Atur lingkungan objek (dalam session atau aplikasi).
id Tentukan id unik untuk objek.
ProgID

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

ProgID atau ClassID harus ditentukan.

ClassID

Tentukan id unik untuk objek kelas COM.

ProgID atau ClassID harus ditentukan.

instansi

Instansi pertama menciptakan objek yang dinamakan "MyAd" dan menggunakan parameter ProgID untuk objek area penggunaan session:

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

Instansi 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 ke objek "MyAd" ini dari halaman apapun di aplikasi ASP:

Berkas .ASP:

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

Pernyataan TypeLibrary

TypeLibrary (Pustaka Tipe) adalah wadah yang mengandung berkas DLL yang sejalan dengan objek COM. Dengan memasukkan panggilan TypeLibrary di Global.asa, dapat mengakses konstanta objek COM, serta kode ASP 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.

Syarat:

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

Nilai kesalahan

Server akan mengembalikan salah satu pesan kesalahan di bawah ini:

Kesalahan Kode Deskripsi
ASP 0222 Spesifikasi pustaka tipe yang tidak sah
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 menempatkan tag METADATA di bagian atas file Global.asa.

Batasan

Batasan tentang apa yang dapat diacu di 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. Di dalam sub-routine Session_OnEnd, Anda dapat menggunakan objek Server, Application, dan Session. Di dalam sub-routine Session_OnStart, Anda dapat menggunakan semua objek bawaan.

Bagaimana menggunakan sub-routine

Global.asa sering digunakan untuk menginisialisasi variabel.

Contoh di bawah menunjukkan bagaimana mendeteksi waktu khusus saat pengunjung pertama kali datang ke situs. Waktu ini disimpan di dalam objek Session yang bernama "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 mengalihkan setiap pengunjung baru 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, ketika server Web dimulai, sub-routine Application_OnStart juga akan dimulai. Setelah itu, sub-routine Application_OnStart akan memanggil sub-routine lain yang bernama "getcustomers". Sub-routine "getcustomers" akan membuka database, lalu mengambil sebuah record set dari tabel "customers". Record set ini akan diatur ke dalam sebuah array, sehingga setiap halaman ASP dapat mengakses array ini tanpa mencari database:

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

Instance Global.asa

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

Application_OnStart mengatur nilai variabel Application "visitors" menjadi 0 saat server dimulai.

Setiap ada pengguna baru yang mengakses, prosedur Sub Session_OnStart akan menambah 1 ke variabel "visitors".

Setiap prosedur Sub Session_OnEnd diaktifkan, prosedur ini akan mengurangi 1 dari variabel "visitors".

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

File ASP ini akan menampilkan jumlah pengguna saat ini:

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