Direkomendasikan: ASP mengimplementasikan pengiriman email secara otomatis jika halaman web yang tidak ada Ketika kami membuat situs web, kami biasanya memiliki beberapa kesalahan dalam tindakan atau cacat pengunjung di situs web kami, menyebabkan halaman yang tidak ada dikunjungi. Saat ini, pesan kesalahan 404 akan muncul. Jika Anda seorang pengunjung yang antusias, Anda dapat mengirimi Anda email untuk mengingatkan Anda. Pada saat itu, sebagian besar orang
Siapa pun yang telah menulis ASP yang sedikit lebih besar tahu bahwa sesi itu sangat berguna. Ini dapat digunakan untuk merekam variabel data milik pengguna, yang aman dan nyaman. Tapi apakah Anda benar -benar tahu bagaimana sesi bekerja? Mungkin setelah Anda mengerti, Anda tidak akan pernah berani menggunakan objek cinta-benci ini lagi. Meskipun metode perubahan menjadi alternatif agak merepotkan, setelah pertimbangan jangka panjang, saya harus melakukannya.
Pertama, mari kita bicara tentang manfaat sesi, yang dapat digunakan untuk merekam variabel data yang dimiliki secara pribadi oleh klien dan tidak akan hilang dalam rentang waktu. Ini benar -benar fungsi yang penting, terutama yang harus digunakan oleh sistem dengan anggota. Misalnya, akun login anggota, waktu, status, dan banyak data real-time yang direkam dalam catatan ini, seperti sistem belanja mencatat produk di keranjang belanja pengguna. Informasi ini dibutuhkan secara pribadi oleh setiap pengguna, dan pengembang biasanya menggunakan catatan sesi untuk memprosesnya.
Namun, sesi dalam ASP terdiri dari cookie, dan server mentransmisikan semua informasi yang dicatat dalam sesi ke browser pengguna dalam bentuk cookie. Biasanya, browser akan menyimpan cookie ini. Setiap kali pengguna mengklik tautan dan menghubungkannya ke server lagi, browser akan meneruskan cookie ini kembali ke server untuk diproses. Ini adalah prinsip operasi sesi. Ketika jumlah data lebih besar, itu harus ditransmisikan dan dikumpulkan. Ini tidak hanya mengkonsumsi bandwidth line, tetapi juga mengurangi kinerjanya, karena server harus menghabiskan lebih banyak sumber daya untuk tindakan awal seperti pemrosesan online dan mengkonfigurasi ulang memori. Sekarang Anda mungkin berpikir, "Saya harus menggunakan fungsi ini, jadi saya harus berkorban sedikit." Namun, artikel ini berbicara tentang sesi. Di satu sisi, itu mengajarkan semua orang untuk menggunakan lebih sedikit; Di sisi lain, tentu saja ada alternatif. Maka orang yang datang di atas panggung adalah objek aplikasi milik Global.asa.
Aplikasi juga bagus dalam merekam dan memproses data sementara. Kemampuan dan penggunaannya dalam semua aspek sama dengan sesi, tetapi sebagai perbandingan, data yang dicatatnya publik, yaitu ruang variabel yang dapat dibagikan oleh pengguna mana pun. Aplikasi tidak seperti sesi, yang tidak memberikan data kepada pengguna dan menunggu waktu berikutnya untuk membacanya kembali secara online. Ini direkam langsung di memori di server, dan kinerjanya jauh lebih cepat daripada sesi.
Karena objek aplikasi bersifat publik, hal pertama yang harus dilakukan adalah merencanakan area umum untuk setiap pengguna, sehingga setiap pengguna memiliki area sendiri untuk merekam data untuk mencapai tujuan sesi simulasi. Ada dua cara untuk melakukannya sekarang:
1. Inisialisasi dan alokasikan ruang memori pengguna terlebih dahulu saat server diaktifkan. Biasanya, meskipun pendekatan ini menempati banyak sumber daya segera setelah server didukung, itu juga menghemat kesulitan karena harus mengalokasikan setiap kali pengguna online. Namun, ada batasan. Menggunakan metode ini harus membatasi jumlah maksimum orang. Karena diinisialisasi segera setelah diaktifkan, kami hanya dapat memperkirakan pembentukan sejumlah ruang memori, sehingga metode ini biasanya digunakan dalam program kecil seperti ruang obrolan.
2. Metode ini harus dianggap lebih tepat untuk aplikasi besar. Itu mengadopsi metode alokasi dinamis. Hanya ketika pengguna online ke server untuk pertama kalinya, sumber daya akan dialokasikan untuk pengguna ini. Tujuan dari dua solusi sesi yang disimulasikan ini adalah untuk mengurangi konsumsi sumber daya sesi, tetapi bagaimanapun juga, itu masih tak tergantikan. Kita masih perlu menggunakan sesi kecil, yang setidaknya dapat mengurangi banyak beban di server.
■ Rencana pertama
Pertama, kami memulai implementasi solusi pertama. Karena itu untuk menginisialisasi aplikasi saat diaktifkan, tentu saja kita harus mulai dari global.asa:
Inisialisasi telah selesai, tetapi bagaimana menggunakannya? Kami hanya perlu mengubah informasi yang disimpan menggunakan sesi, seperti akun dan waktu login, ke dalam objek aplikasi yang telah kami buat, di mana pengguna masuk:
| Berikut ini adalah konten yang dikutip: 'Mencari ruang yang tidak digunakan Untuk i = 1 ke aplikasi (clientmax) Jika aplikasi (user_status_ & i) = 0 lalu Nomor sementara pengguna sesi (indeks) = i 'Mengunci Aplikasi Aplikasi.lock 'Diatur ke keadaan bekas Aplikasi (user_status_ & i) = 1 'dimasukkan ke dalam data variabel Aplikasi (user_account_ & i) = akun Aplikasi (user_logtime_ & i) = sekarang () 'Tidak dikunci Application.unlock Keluar untuk Akhiri jika Berikutnya |
Untuk mendapatkan data variabel yang relevan pengguna, itu seperti berikut:
Response.write (aplikasi (user_account_ & session (index))
Anda mungkin menemukan bahwa Anda tidak bermaksud tidak menggunakan sesi? Lalu mengapa sesi ada dalam kode asli di atas? Seperti yang disebutkan sebelumnya, alternatif ini tidak dapat sepenuhnya menggantikan sesi. Browser tidak selalu online dengan server. Ini akan terputus setelah membaca halaman. Jadi bagaimana kita tahu jika orang yang sama online lain kali? Pada saat ini, kita harus mengandalkan sesi. Kami memberi pengguna satu set nomor real-time. Nomor ini adalah jumlah pengguna dalam ruang variabel pada aplikasi. Anda dapat membayangkan bahwa ada banyak brankas di bank. Anda memiliki kunci, dan kunci memiliki angka. Nomor pada kunci memungkinkan operator untuk membawa Anda ke brankas Anda sendiri. Metode ini memiliki beberapa perbaikan, tetapi cukup untuk aplikasi kecil.
■ Rencana Kedua
Mengenai solusi sebelumnya, Anda juga mungkin berpikir bahwa nomor yang disesuaikan kami menggunakan sesi untuk merekam. Berbicara tentang penomoran, objek sesi menyediakan metode "sessionID". Itu benar, tidak peduli apakah kami ingin menggunakannya atau tidak, server akan secara otomatis membantu setiap pengguna menetapkan nomor, dan nomor ini tidak akan diulang. Adapun nomor ini, ini diperoleh dengan session.SessionID. Penomoran ini adalah tindakan yang pasti akan dilakukan sesi, sehingga kami dapat menggunakannya untuk mengganti program penomoran yang kami tulis sendiri, yang menghemat upaya lain dan bahkan memiliki ekspansi yang lebih besar. Namun pada dasarnya, solusi pertama di atas masih berguna, seperti ruang obrolan yang membatasi jumlah orang dan aplikasi kecil lainnya. Alternatif kedua berikutnya adalah untuk sistem yang lebih besar.
Jika situs web dengan ratusan, ribuan atau bahkan puluhan ribu orang di situs web setiap detik, itu pasti tidak akan berfungsi jika menggunakan solusi sebelumnya. Misalkan Anda menetapkan batas atas 10.000 orang, setelah server diaktifkan, itu akan membantu Anda memotong 10.000 area untuk mempersiapkan 10.000 pengguna. Jika ada 5 variabel di suatu wilayah, satu variabel menyumbang 32 byte (byte), dan 10.000 menyumbang lebih dari 320.000 K (320MB), dan begitu server diaktifkan, itu akan memasukkan begitu banyak sampah ke dalam memori, dan kinerjanya pasti akan dikurangi banyak sebelum masuk ke medan perang. Dan meskipun angka -angka ini sangat sedikit, saya pikir 512 MB Anda akan cukup, angka di atas diasumsikan sebagai angka minimum, dan tidak diketahui berapa banyak sumber daya yang akan digunakan server saat mengkonfigurasi memori, jadi itu hanya akan lebih dan tidak lebih rendah. Oleh karena itu, solusinya adalah mengonfigurasi ruang variabel pengguna secara dinamis, dan memotong area saat pengguna online dengan server, sehingga tidak perlu mengkonfigurasi memori yang sangat besar sebelumnya.
Solusi kedua relatif mudah dilakukan. Harap buang semua hal dalam solusi pertama. Kami tidak perlu pindah ke global.aSa, kami hanya perlu mengubah login pengguna dan tempat bermanfaat lainnya:
| Berikut ini adalah konten yang dikutip: Lock applicationApplication.lock 'letakkan data variabel Aplikasi (user_account_ & session.SessionId) = akun Aplikasi (user_logtime_ & session.SessionId) = now () 'Buka kunci buka kunci aplikasi.unlock |
Untuk mendapatkan data variabel yang relevan pengguna, itu seperti berikut:
Response.write (aplikasi (user_account_ & session.SessionId))
Di masa lalu, saya membaca banyak buku yang mengatakan sesi sangat sulit untuk dimakan sumber daya, jadi cobalah untuk tidak menggunakannya, tetapi saya masih harus menggunakannya ketika mereka harus melakukannya, dan buku -buku itu tidak mengajarkan solusi yang lebih tepat. Sekarang ketika Anda memahami cara mengganti sesi, memanfaatkannya dengan baik! Mungkin masalah efisiensi yang selalu bermasalah dapat ditingkatkan banyak!
Bagikan: Tulis program pop-up yang lebih ramah pengguna dengan ASP Contoh ASP: Gunakan ASP untuk menulis program pop-up yang lebih ramah pengguna untuk membantu kami membuat metode investigasi non-annoying. Menggunakan jendela pop-up untuk menampilkan kuesioner dianggap sebagai cara yang paling nyaman dan cepat untuk mengumpulkan informasi pengguna. Setelah kuesioner pertama diproduksi