Agar berfungsi dengan baik, mereka harus ditempatkan dalam aplikasi virtual di server, dan file global.asa yang disediakan harus ditempatkan di direktori root aplikasi. Cara termudah adalah dengan meletakkan file global.asa di direktori root situs Web default (C:/InetPub/WWWRoot secara default).
Sebaiknya ganti nama file global.asa yang ada agar dapat dipulihkan nanti.
1. Menampilkan konten koleksi Aplikasi
Objek ASPCounter adalah anggota koleksi StaticObjects (didefinisikan melalui elemen <OBJECT>), namun sisanya (dibuat oleh Server.CreateObject) adalah anggota koleksi Konten.
Anda dapat melihat nilai yang dimasukkan ke dalam koleksi ini menggunakan halaman web contoh global.asa, yang telah kita lihat sebelumnya:
<!-- Deklarasikan instance komponen ASPCounter dengan
cakupan tingkat aplikasi //-->
<ID OBYEK=”ASPCounter” RUNAT=”Server” SCOPE=”Aplikasi”
PROGID=”MSWC.Penghitung”>
</OBJEK>
...
...
<BAHASA SKRIP=”VBScript” RUNAT=”Server”>
Sub Aplikasi_onStart()
'Buat sebuah instance dari Koneksi ADO dengan cakupan tingkat aplikasi
Setel Aplikasi("ADOConnection") = Server.CreateObject("ADODB.Connection")
Redupkan varArray(3) 'Buat array Varian dan isi
varArray(0) = "Ini adalah"
varArray(1) = "Array varian"
varArray(2) = “disimpan di”
varArray(3) = "Objek aplikasi"
Application("Variant_Array") = varArray 'Simpan di Aplikasi ke-9
Application(“Start_Time”) = CStr(Sekarang) 'Simpan tanggal/waktu sebagai string
Application(“Visit_Count”) = 0 'Setel variabel penghitung ke nol
Akhiri Sub
...
...
</SCRIPT>
(1) Kode untuk melintasi koleksi Contents.
Untuk melintasi koleksi Contents, Anda dapat menggunakan struktur For Each...Next. Setiap item dalam koleksi bisa berupa variabel tipe Varian sederhana, array Varian, atau referensi ke suatu objek. Karena setiap jenis nilai perlu ditangani secara berbeda, masing-masing nilai harus diperiksa untuk menentukan jenisnya.
Anda dapat menggunakan fungsi VarType di VBScript untuk menyelesaikan pekerjaan ini. Gunakan fungsi IsObject dan IsArray sebagai gantinya:
Untuk Setiap objItem di Application.Contents
Jika IsObject(Application.Contents(objItem)) Lalu
Response.Tulis "Referensi objek: '" & objItem & "'
"
ElseIf IsArray(Application.Contents(objItem)) Kemudian
Response.Write "Array: '" & objItem & "' isinya adalah:
"
VarArray = Aplikasi.Isi(objItem)
'Catatan: yang berikut ini hanya berfungsi dengan array satu dimensi
Untuk intLoop = 0 Ke UBound(varArray)
Respon.Tulis “ Index(“ & intLoop & “) = “ & _
VarArray(intLoop) & “
"
Berikutnya
Kalau tidak
Respon.Tulis "Variabel: '" & objItem & "' = " _
& Aplikasi.Isi(objItem) & “
"
Akhiri Jika
Selanjutnya
perhatikan bagaimana program mengambil array ini dari objek Aplikasi. Tetapkan ke variabel lokal (Varian) dan gunakan pernyataan berikut:
varArray = Application.Contents(objItem)
Gunakan fungsi UBound untuk mengetahui ukuran array (jumlah elemen). untuk traversal:
Untuk intLoop = 0 UBound(varArray)
Contoh ini adalah array satu dimensi dan hanya akan menampilkan isi array tersebut. Edit kode seperlunya untuk menangani array multidimensi, misalnya:
For intLoop = 0 To UBound(varArray)
IntNumberOfDimensions = UBound(varArray, 1)
Untuk intDimension = 0 Ke intNumberOfDimensions
Respon.Tulis “ Index(“ & intLoop & “) = “ _
& varArray(intLoop, intDimensi)
Berikutnya
Respon.Tulis ""
Berikutnya
(2) Kode untuk melintasi koleksi StaticObjects
Koleksi StaticObjects berisi semua referensi objek yang dideklarasikan menggunakan elemen <OBJECT> di global.asa. Karena setiap entri adalah variabel objek, array dapat diiterasi dengan kode yang lebih sederhana. Kami akan menampilkan nama objek (seperti yang awalnya didefinisikan dalam properti ID):
Untuk Setiap objItem di Application.StaticObjects
Jika IsObject(Application.StaticObjects(objItem)) Lalu
Respon.Tulis elemen "<OBJECT>: ID='" & objItem & "'
"
Akhiri Jika
Selanjutnya
2. Pengoperasian pada koleksi
1) Menambahkan nilai pada
koleksi Contents. Cara menambahkan nilai pada koleksi Contents sama dengan yang digunakan pada kode script halaman web global.asa. Mengizinkan nilai Varian baru ditambahkan ke objek Aplikasi, dengan nama dan nilai yang disarankan (yang dapat diedit sesuai kebutuhan), klik tombol, muat ulang halaman, tambahkan nilai ke koleksi Aplikasi.Isi, dan Tampilkan dalam daftar .
Tambahkan kode untuk entri Konten baru
untuk menempatkan semua tombol dan kontrol HTML lainnya pada formulir di halaman web contoh. ACTION menetapkan jalur halaman web saat ini dan memuatnya kembali saat formulir dikirimkan. Atribut METHOD adalah "POST", sehingga nilai dalam kontrol muncul di koleksi Request.Form. Kedua teknik ini telah digunakan pada bab sebelumnya:
<FORM ACTION="<% = Request.ServerVariables("SCRIPT_NAME") %>" METHOD="POST">
Tombol-tombol pada formulir ini adalah kontrol INPUT HTML biasa, memiliki judul yang sama (tiga spasi) tetapi namanya berbeda. Misalnya kode untuk membuat tombol pertama (menambahkan nilai pada objek Aplikasi) adalah:
<INPUT TYPE="SUBMIT" NAME="cmdAdd" VALUE="">
Saat memuat ulang halaman web, periksa koleksi Request.Form , Tentukan tombol KIRIM mana yang diklik dan tangani dengan tepat. Jika itu adalah tombol yang menambah nilai pada objek Aplikasi (tombol tersebut bernama cmdAdd dalam elemen HTML <INPUT>), gunakan segmen program berikut:
If Len(Request.Form("cmdAdd")) Then
strVarName = Permintaan.Formulir("txtVarName")
strVarValue = Permintaan.Form("txtVarValue")
Aplikasi.Kunci
Aplikasi("strVarName") = strVarValue
Aplikasi. Buka kunci
End If
Perhatikan bagaimana aplikasi menggunakan metode Application.Lock dan Application.Unlock untuk memastikan bahwa nilai-nilai ini tidak tertukar oleh dua pengguna yang mengaksesnya secara bersamaan. Hal ini umumnya tidak mungkin dilakukan jika Anda hanya menetapkan nilai tertentu. Namun sebaiknya selalu gunakan metode Lock dan Unlock.
2) Hapus nilai dari koleksi Konten
Buat daftar ini saat menjalankan halaman web ASP dengan melintasi koleksi Konten (seperti yang kita lakukan sebelumnya). Namun, kami hanya mengumpulkan nama setiap item dan memasukkannya ke dalam elemen <OPTION> di dalam elemen daftar <SELECT>:
…
<PILIH NAMA=”lstHapus” UKURAN=”1”>
<%
Untuk Setiap objek di Application.Contents
Respon.Tulis “<OPTION>” & objItem & “</OPTION>”
Berikutnya
&>
</PILIH>
…
Setelah kode ASP dijalankan, hasil yang terlihat di browser adalah:
<SELECT NAME="lstRemove" SIZE="1">
<OPTION>Koneksi ADO</OPTION>
<OPTION>Variant_Array</OPTION>
<OPTION>Waktu_Mulai</OPTION>
<OPTION>Kunjungan_Hitungan</OPTION>
<OPTION>Nilai_Baru_Saya</OPTION>
</SELECT>
(1) Hapus satu nilai
Ketika Anda mengklik tombol untuk menghapus satu nilai, formulir dikirimkan ke halaman web yang sama lagi, tapi kali ini tombol KIRIM untuk cmdRemoveThis akan diatur, dan kemudian Hapus metode koleksi Application.Contents akan dipanggil. :
If Len(Request.Form("cmdRemoveThis")) Then
strToRemove = Permintaan.Form("lstRemove")
Respon.Tulis "strToRemove = " & strToRemove
Aplikasi.Kunci
Aplikasi.Isi.Hapus(strToRemove)
Aplikasi. Buka kunci
End If
Perhatikan bahwa ini adalah metode pengumpulan Konten, bukan objek Aplikasi. Sintaksnya adalah Aplikasi.Isi.Hapus, bukan Aplikasi.Hapus.
Hasil penghapusan nilai Start_Time dari koleksi Contents.
(2) Hapus semua nilai.
Jika Anda mengklik yang terakhir dari tiga tombol jenis SUBMIT, kode di halaman web akan mendeteksi bahwa tombol yang diklik adalah cmdRemoveAll, dan akan menjalankan metode HapusSemua dari koleksi Application.Contents:
If Len( Formulir Permintaan("cmdRemoveAll")) Kemudian
Aplikasi.Kunci
Aplikasi.Isi.HapusSemua
Aplikasi. Buka kunci
End If
mengingatkan Anda lagi bahwa ini adalah metode pengumpulan Konten, bukan Aplikasi. Sintaksnya adalah Application.Contents.RemoveAll, bukan Application.RemoveAll.