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>