Dalam artikel sebelumnya, penulis memperkenalkan secara rinci dua metode yang sangat praktis untuk menggunakan aplikasi dan sesi objek bawaan ASP. Karena skrip acara Onstart dan Onend harus dinyatakan dalam file global.asa, artikel ini akan memperkenalkan secara rinci cara menggunakan file global.asa. Untuk memungkinkan semua orang menguasai pengetahuan yang telah mereka pelajari sejauh ini, artikel ini juga akan menyertakan program obrolan ASP untuk referensi Anda.
Baru -baru ini, banyak teman telah mengirimi saya surat untuk bertanya kepada saya mengapa ada kesalahan seperti itu dan seperti itu ketika menjalankan program contoh dalam dua masalah pertama. Pertama -tama, saya ingin menyatakan kepada Anda bahwa program -program ini ditulis oleh diri saya sendiri dan telah lulus inspeksi kualifikasi sebelum meninggalkan pabrik, dan tidak ada produk palsu dan jelek. :) Karena cookie digunakan dalam program untuk merekam informasi pelanggan, jika Anda tidak mengatur cookie menerima di browser Anda, program tidak akan berjalan secara normal. Selain itu, metode yang digunakan oleh program untuk merekam informasi pelanggan dalam cookie klien adalah respons.cookie. HTTP Jika informasi header HTTP telah ditransmisikan ke pelanggan, jika responsnya. Cookie digunakan setelah informasi header HTTP telah ditransmisikan ke pelanggan, kesalahan berikut akan muncul: header HTTP telah ditulis ke browser pelanggan. Setiap modifikasi header HTTP harus sebelum menulis ke konten halaman. , Beberapa teman mungkin tidak memperhatikan saat memotong program, mengganggu urutan pra dan belakang program, atau secara tidak benar menambahkan kode HTML sebelum program sampel ASP, menghasilkan kesalahan dalam program yang berjalan. Oleh karena itu, saya menyarankan bahwa di satu sisi, jangan membuat perubahan pada program saat menjalankan rutin untuk pertama kalinya, dan mencoba untuk secara bertahap meningkatkannya berdasarkan pemahaman program. Anda setidaknya harus memilih cookie yang dapat diterima di browser.
Selanjutnya, saya akan memperkenalkan kepada Anda cara menggunakan file global.asa.
Apa itu file global.asa? Ini sebenarnya adalah file opsional di mana penulis program dapat menentukan skrip acara dan mendeklarasikan objek dengan lingkup sesi dan aplikasi. Isi file ini tidak digunakan untuk ditampilkan kepada pengguna, tetapi untuk menyimpan informasi acara dan objek yang digunakan secara global oleh aplikasi. Nama file harus global.asa dan harus disimpan di direktori root aplikasi. Setiap aplikasi hanya dapat memiliki satu file global.asa.
Dalam file global.asa, jika skrip yang disertakan tidak dienkapsulasi dengan tag <script>, atau objek yang ditentukan tidak memiliki ruang lingkup sesi atau aplikasi, server mengembalikan kesalahan. Kami dapat menulis skrip yang termasuk dalam file global.asa dalam bahasa yang diaktifkan skrip. Jika beberapa peristiwa berada dalam bahasa skrip yang sama, mereka dapat diatur dalam satu set tag <script>.
Proses yang dideklarasikan dalam file global.asa hanya dapat dipanggil dari satu atau lebih skrip yang terkait dengan Acara Application_onstart, Application_onend, session_onstart, dan session_onend. Mereka tidak tersedia di halaman ASP aplikasi berbasis ASP. Jika Anda ingin berbagi prosedur antar aplikasi, Anda dapat mendeklarasikannya dalam file terpisah dan kemudian menggunakan pernyataan inklusi sisi server (SSI) untuk memasukkan file dalam program ASP yang memanggil prosedur. Secara umum, perpanjangan file yang berisi harus .inc.
Berikut adalah file global.asa yang sangat standar:
<Bahasa skrip = vbscript runat = server>
'Session_onstart berjalan saat klien pertama kali menjalankan halaman apa pun di aplikasi ASP
'Session_onend berjalan saat sesi klien habis atau keluar dari aplikasi
'Application_onstart berjalan ketika pelanggan mana pun pertama kali mengakses beranda aplikasi
'Application_onend berjalan saat server web situs sedang down
</script>
<Bahasa skrip = vbscript runat = server>
Sub Application_onstart
VisitorcountFileName = server.mappath ( /ex2) + /visitcount.txt
Set FileObject = Server.CreateObject (Scripting.FilesyStemObject)
Atur out = fileobject.opentextFile (visitorcountfileName, 1, false, false)
Aplikasi (Pengunjung) = Out.Readline
Aplikasi (VisitorCountFileName) = VisitorCountFileName
Akhir sub
'================================================== =================== ==========
Sub application_onend
Set FileOutObject = Server.CreateObject (Scripting.FilesyStemObject)
Atur out = fileoutobject.createTextFile (application (visitorcountFileName), true, false)
Out.WriteLine (Aplikasi (Pengunjung))
Akhir sub
'================================================== =================== ========== Sub session_onstart
Session.timeout = 5
Aplikasi (Pengunjung) = Aplikasi (Pengunjung) + 1
Sesi (id) = session.SessionId
Akhir sub
</script>
Dalam program global.ASA ini, komponen akses file ASP terlibat, yang menyediakan metode, properti, dan koleksi untuk mengakses sistem file. Ini akan dibahas dalam komponen ASP di masa depan. Di sini, berfungsi untuk membuat file baru di server dan menulis ke file. Ini sebenarnya adalah file global dari aplikasi penghitung akses halaman ASP pertama. jalur dan konten file dalam variabel tingkat aplikasi. Ketika klien mana pun mengakses halaman apa pun dalam aplikasi ASP, definisi Process Session_onstart secara otomatis menambahkan nilai pengunjung variabel tingkat aplikasi. Dengan cara ini, setiap kali pelanggan mengunjungi halaman, pengunjung variabel akan secara otomatis ditambahkan ke fungsi menghitung tingkat klik-tayang. Karena nilai pengunjung variabel disimpan dalam memori sistem, jika server dimatikan atau dinyalakan kembali, data yang disimpan dalam variabel akan secara otomatis hilang. Server dimatikan atau dihidupkan kembali.
Setelah periode studi ini, saya percaya semua orang telah dapat menggunakan objek ASP bawaan yang telah kami pelajari untuk menulis beberapa aplikasi ASP yang lebih sederhana. Kembangkan beberapa aplikasi ASP yang sederhana namun praktis. Izinkan saya memberi Anda program ruang obrolan web ASP yang sangat sederhana. Mungkin teman -teman telah melihat cara menulis program obrolan ASP di beberapa majalah, tetapi penulis menulis program yang lebih sederhana di sini, hanya menggunakan satu file .asp. Silakan klip kode berikut ke dalam notepad dan simpan sebagai chat.asp.
< %@ Bahasa = vbscript %>
< %
Response.buffer = true 'Atur cache output untuk menampilkan halaman yang berbeda.
Pada kesalahan resume berikutnya 'Abaikan bagian kesalahan program
Jika request.serverVariable (request_method) = dapatkan kemudian
'Tentukan bagaimana klien meminta halaman web
'------------------------------------------------- -------------------------------------------------- --------------------------
'Antarmuka login pelanggan
'------------------------------------------------- -------------------------------------------------- --------------------------
%>
<Form Method = Post Action = Chat.asp> <p>
<Input Tipe = Nama Teks = Ukuran Nick = 20 Nilai = Gaya Nick = Latar Belakang-Color: RGB (192,192,192)> <BR>
<Input Type = Kirim Nilai = Masukkan Nama Ruang Obrolan = B1 Gaya = Warna: RGB (255.255,0);
<p> <input type = name tersembunyi = ukuran log = 20 nilai = 1> <br> </p>
</form>
< %
Response.end 'Akhiri proses program
Kalau tidak
Response.Clear 'Hapus konten di cache
pembicaraan redup
Jika request.form (nick) <> lalu
'Tentukan apakah pelanggan berada di antarmuka obrolan
Session (nick) = request.form (nick)
Akhiri jika
'------------------------------------------------- -------------------------------------------------- --------------------------
Antarmuka obrolan pelanggan
'------------------------------------------------- -------------------------------------------------- --------------------------
%>
<Metode Form = Post Action = Chat.asp Name = Form1> <p> < %= session (Nick) %> Bicara: <input type = nama teks = ukuran bicara = 50> <br>
<Input Tipe = Kirim Nilai = Kirim Nama = B1>
<Input Tipe = Nilai Reset = Batalkan Nama = B2> </p>
</form>
<A href =/asptest/shusheng/chat.asp> cuti <//a> <br> <br>
< %
Jika request.form (log) <> 1 lalu
Jika trim (request.form (bicara)) = lalu
'Tentukan apakah pengguna belum memasukkan apapun
Talk = Sesi (Nick) & diam adalah emas.
Kalau tidak
Talk = trim (request.form (bicara))
'Lepaskan ruang setelah karakter
Akhiri jika
Application.lock
Aplikasi (tunjukkan) = <tabel border = '0' cellPadding = '0' cellPacing = '0' width = '85%'> <tr> <td width =' 100%'bgcolor ='#c0c0c0 '> < /td > </tr> <tr> <td width = '100%'> <font color = '#0000ff'> & sesi (nick) & waktu & dari & request.servarible (remote_addr) & berkata: </font> & bicara & < /td> </tr> <tr> <td width = '100%' bgcolor = '#c0c0c0'> </td> </tr> </able> <br> & aplikasi (tunjukkan)
Application.unlock
Response.write Application (show)
Akhiri jika
Akhiri jika
%>
Mari kita lakukan analisis langkah demi langkah dari program ruang obrolan ini.
Pertama-tama, karena semua pelanggan di ruang obrolan harus dapat berbagi informasi, tidak dapat dihindari untuk menggunakan aplikasi objek dengan variabel tingkat aplikasi. -Level. Kami dapat menggunakan objek permintaan yang telah kami pelajari untuk mendapatkan percakapan yang dimasukkan oleh klien dan menyimpannya di variabel pembicaraan, dan kemudian menyimpan nilai pembicaraan ke dalam acara variabel level aplikasi, sebagai berikut:
< % Aplikasi (show) = Talk & Application (show) %>
Hal berikutnya yang perlu dipertimbangkan adalah bagaimana menangani pelanggan yang berbeda ketika mereka beroperasi pada aplikasi obrolan secara bersamaan. Masalah ini sebenarnya sama dengan dua pengguna dalam database yang menulis catatan yang sama secara bersamaan. Pengguna lain., Jadi jika langkah -langkah tertentu tidak diambil ke akses bersamaan ke data objek aplikasi, itu akan menyebabkan satu pengguna pengiriman ditimpa dengan pengajuan pengguna lain ketika dua pengguna mencoba mengirimkan ke aplikasi ruang obrolan ASP pada saat yang sama menghilang sebelum siapa pun yang hadir dalam sesi melihatnya. Untuk menghindari masalah semacam ini, kita perlu menggunakan properti kunci objek aplikasi untuk membatasi hanya pengguna saat ini untuk mengedit atau menambahkan properti objek aplikasi. Secara eksplisit tidak terkunci sampai saat itu, properti dari objek aplikasi hanya dapat diedit oleh pengguna. Seperti yang ditunjukkan di bawah ini:
Application.lock
Aplikasi (Tampilkan) = Bicara & Aplikasi (Tampilkan)
Application.unlock
Sekarang Anda telah memahami bagian inti dari seluruh program, pertimbangkan cara menyimpan informasi pelanggan di sini kami akan menggunakan variabel tingkat sesi, yaitu, simpan Nick pelanggan dalam sesi tersebut. menyukai:
Session (nick) = request.form (nick)
Akhirnya, yang perlu kita pertimbangkan adalah bagaimana menangani berbagai peristiwa hanya dalam satu file .asp, seperti: antarmuka login pelanggan, antarmuka obrolan pelanggan. Sejak pertama kali klien meminta file .asp, menggunakan metode HTTP Get sederhana, tetapi ketika klien menambahkan data ke bidang formulir pada halaman dan mengirimkan formulir ke dirinya sendiri, file .asp akan diminta lagi, tetapi Ini data dilewatkan melalui HTTP Post. Cara file yang diminta dapat ditentukan dalam dua cara. Pertama, uji apakah pengumpulan permintaan. Bentuknya berisi anggota. Yang kedua adalah menggunakan variabel permintaan. Jika formulir diminta melalui HTTP GET, variabel ini pengembalian dapatkan dan posting jika formulir diserahkan. Karena metode yang terakhir lebih langsung dalam menentukan metode permintaan file, kami menggunakan kode berikut untuk membuat penilaian:
Jika request.serverVariable (request_method) = dapatkan kemudian
Karena kami mengatur cache ASP, ketika program menentukan bahwa metode permintaan halaman adalah, program menjalankan respons. End untuk mengakhiri semua operasi berikutnya. program berjalan. Dengan cara ini, kita dapat menggunakan file .asp yang sama untuk menampilkan antarmuka yang berbeda kepada pelanggan sesuai dengan situasi yang berbeda.
Oke, saya telah memberi tahu Anda bagian inti dari program obrolan ASP ini. Jangan berbicara dalam obrolan, Anda tidak akan melihat apa yang dikatakan pelanggan lain. Semua orang tahu pesona obrolan di internet. Secara bertahap meningkatkan tingkat program obrolan ini sehingga semua orang juga dapat meneruskan versi opera yang tersembunyi. Catatan: Dengan program obrolan ini, Anda dapat menggunakannya untuk membuat aplikasi obrolan di PWS Anda. melalui komputer Anda.