ASP File Global.asa
File Global.asa
File Global.asa adalah file opsional yang dapat berisi deklarasi objek, variabel, dan metode yang dapat diakses oleh setiap halaman dalam aplikasi ASP.
Semua skrip browser yang valid (JavaScript, VBScript, JScript, PerlScript, dll.) dapat digunakan dalam Global.asa.
File Global.asa hanya dapat berisi berikut ini:
- Acara aplikasi
- Acara sesi
- Deklarasi <objek>
- Deklarasi TypeLibrary
- #sertakan arahan
Catatan: File Global.asa harus disimpan di direktori root aplikasi ASP, dan setiap aplikasi hanya dapat memiliki satu file Global.asa.
Acara di Global.asa
Di Global.asa Anda dapat memberi tahu objek aplikasi dan sesi apa yang harus dilakukan saat aplikasi/sesi dimulai dan apa yang harus dilakukan saat aplikasi/sesi berakhir. Kode untuk ini ditempatkan di event handler. File Global.asa dapat berisi empat jenis acara:
Application_OnStart - Terjadi saat pengguna PERTAMA memanggil halaman pertama dalam aplikasi ASP. Peristiwa ini terjadi setelah server Web dimulai ulang atau setelah berkas Global.asa diedit. Acara "Session_OnStart" terjadi segera setelah acara ini.Session_OnStart - Acara ini terjadi SETIAP kali pengguna BARU meminta halaman pertamanya di aplikasi ASP.
Session_OnEnd - Acara ini terjadi SETIAP kali pengguna mengakhiri sesi. Sesi pengguna berakhir setelah halaman tidak diminta oleh pengguna untuk waktu yang ditentukan (secara default ini adalah 20 menit).
Application_OnEnd - Acara ini terjadi setelah pengguna TERAKHIR mengakhiri sesi. Biasanya, peristiwa ini terjadi ketika server Web berhenti. Prosedur ini digunakan untuk membersihkan pengaturan setelah Aplikasi berhenti, seperti menghapus catatan atau menulis informasi ke file teks.
File Global.asa dapat terlihat 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>
Catatan: Karena kami tidak dapat menggunakan pembatas skrip ASP (<% dan %>) untuk menyisipkan skrip di file Global.asa, kami menempatkan subrutin di dalam elemen <script> HTML.
<objek> Deklarasi
Dimungkinkan untuk membuat objek dengan ruang lingkup sesi atau aplikasi di Global.asa dengan menggunakan tag <object>.
Catatan: Tag <object> harus berada di luar tag <script>!
Sintaksis
<object runat="server" scope="scope" id="id"
{progid="progID"|classid="classID"}>
....
</object>
Parameter | Description |
---|---|
scope | Sets the scope of the object (either Session or Application) |
id | Specifies a unique id for the object |
ProgID | An id associated with a class id. The format for ProgID is [Vendor.]Component[.Version]
Either ProgID or ClassID must be specified. |
ClassID | Specifies a unique id for a COM class object. Either ProgID or ClassID must be specified. |
Contoh
Contoh pertama membuat objek cakupan sesi bernama "MyAd" dengan menggunakan parameter ProgID:
<object runat="server" scope="session" id="MyAd"
progid="MSWC.AdRotator">
</object>
Contoh kedua membuat objek lingkup aplikasi bernama "MyConnection" dengan menggunakan parameter ClassID:
<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object>
Objek yang dideklarasikan dalam file Global.asa dapat digunakan oleh skrip apa pun dalam aplikasi:
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd"
progid="MSWC.AdRotator">
</object>
You could reference the object "MyAd" from any page in the ASP application:
SOME .ASP FILE:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
Deklarasi TypeLibrary
TypeLibrary adalah wadah untuk konten file DLL yang sesuai dengan objek COM. Dengan menyertakan panggilan ke TypeLibrary dalam file Global.asa, konstanta objek COM dapat diakses, dan kesalahan dapat dilaporkan dengan lebih baik oleh kode ASP. Jika aplikasi Web Anda bergantung pada objek COM yang telah mendeklarasikan tipe data di pustaka tipe, Anda bisa mendeklarasikan pustaka tipe di Global.asa.
Sintaksis
<!--METADATA TYPE="TypeLib"
file="filename"
uuid="id"
version="number"
lcid="localeid"
-->
Parameter | Description |
---|---|
file | Specifies an absolute path to a type library.
Either the file parameter or the uuid parameter is required |
uuid | Specifies a unique identifier for the type library.
Either the file parameter or the uuid parameter is required |
version | Optional. Used for selecting version. If the requested version is not found, then the most recent version is used |
lcid | Optional. The locale identifier to be used for the type library |
Nilai Kesalahan
Server dapat mengembalikan salah satu pesan galat berikut:
Error Code | Description |
---|---|
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 |
Catatan: Tag METADATA dapat muncul di mana saja di file Global.asa (baik di dalam maupun di luar tag <script>). Namun, disarankan agar tag METADATA muncul di dekat bagian atas file Global.asa.
Pembatasan
Batasan pada apa yang dapat Anda sertakan dalam file Global.asa:
- Anda tidak dapat menampilkan teks yang ditulis dalam file Global.asa. File ini tidak dapat menampilkan informasi
- Anda hanya dapat menggunakan objek Server dan Aplikasi di subrutin Application_OnStart dan Application_OnEnd. Dalam subrutin Session_OnEnd, Anda dapat menggunakan objek Server, Aplikasi, dan Sesi. Di subrutin Session_OnStart Anda dapat menggunakan objek bawaan apa pun
Cara menggunakan Subrutin
Global.asa sering digunakan untuk menginisialisasi variabel.
Contoh di bawah ini menunjukkan cara mendeteksi waktu yang tepat pengunjung pertama kali tiba di situs Web. Waktu disimpan dalam variabel Sesi bernama "dimulai", dan nilai variabel "mulai" dapat diakses dari halaman ASP mana pun dalam aplikasi:
<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end sub
</script>
Global.asa juga dapat digunakan untuk mengontrol akses halaman.
Contoh di bawah ini menunjukkan bagaimana mengarahkan setiap pengunjung baru ke halaman lain, dalam hal ini ke halaman yang disebut "newpage.asp":
<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>
Dan Anda dapat memasukkan fungsi dalam file Global.asa.
Dalam contoh di bawah, subrutin Application_OnStart terjadi saat server Web dimulai. Kemudian subrutin Application_OnStart memanggil subrutin lain yang bernama "getcustomers". Subrutin "getcustomers" membuka database dan mengambil kumpulan record dari tabel "customers". Kumpulan catatan ditetapkan ke larik, yang dapat diakses dari halaman ASP mana pun tanpa menanyakan 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>
Contoh Global.asa
Dalam contoh ini kita akan membuat file Global.asa yang menghitung jumlah pengunjung saat ini.
- Application_OnStart menetapkan variabel Aplikasi "pengunjung" ke 0 saat server dimulai
- Subrutin Session_OnStart menambahkan satu ke variabel "pengunjung" setiap kali pengunjung baru datang
- Subrutin Session_OnEnd mengurangi satu dari "pengunjung" setiap kali subrutin ini dipicu
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>
Untuk menampilkan jumlah pengunjung saat ini dalam file ASP:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%>
online now!</p>
</body>
</html>