Direkomendasikan: Manfaatkan pemetaan URL ASP.NET 2.0 Pendahuluan: Pemetaan URL adalah fitur baru yang disediakan di ASP.NET 2.0. Teknologi pemetaan URL membantu kita memetakan URL spesifik ke URL lain. Untuk membantu memahami, mari kita asumsikan bahwa Anda memiliki halaman yang disebut homePage.aspx di situs untuk mengakses beranda, dan semua pengguna juga menggunakannya
9.3.5 cache dataPertama -tama, penting untuk dicatat bahwa meskipun cache data dan cache rekaman digunakan untuk meningkatkan kinerja, keduanya tidak relevan. Cache data adalah area penyimpanan data sementara yang memungkinkan penggunaan data dalam cache alih -alih meregenerasi data baru. Ini hanya berlaku untuk data yang tidak sering diubah tetapi diakses beberapa kali.
Salah satu cara termudah untuk cache data di ASP adalah dengan menggunakan variabel aplikasi dan sesi. Misalnya, misalkan ada beberapa halaman web yang perlu memilih jenis buku. Dalam keadaan normal, file termasuk dengan fungsi berikut dapat dibuat.
<%
Function booktypes ()
RedbookTypes redup
Strquote redup
strquote = chr (34)
Set RSBookTypes = Server.CreateObject (ADODB.Recordset)
'Dapatkan jenis buku
RSBookTypes.Open USP_BookTypes, Strconn
Response.write <pilih name = & strquote & lstBookType & strquote &>
Meskipun bukan rsBookTypes.eof
Response.Write & <pection> & rsBookTypes (Type) & </pection>
rsBookTypes.Movenext
Pergi ke
Response.write & </ pilih>
RSBookTypes.Close
Atur rsbookTypes = tidak ada
Fungsi akhir
%>
Ini hanya memanggil prosedur tersimpan untuk mendapatkan jenis buku saat membuat daftar pilih. Kerugian dari kode di atas adalah bahwa setiap kali fungsi dipanggil, database harus diakses. Oleh karena itu, memodifikasi ulang fungsi ini.
<%
Function booktypes ()
RedbookTypes redup
Strquote redup
STRList redup
'Lihat apakah daftarnya ada di cache
strlist = aplikasi (booktypes)
Jika strlist = lalu
'Tidak di -cache, jadi buatlah daftar dan cache
strquote = chr (34)
Set RSBookTypes = Server.CreateObject (ADODB.Recordset)
'Dapatkan jenis buku
RSBookTypes.Open USP_BookTypes, Strconn
strlist = <pilih name = & strquote & lstBookType & strquote &>
Meskipun bukan rsBookTypes.eof
strlist = strlist & <pection> & rsBookTypes (type) & </pection>
rsBookTypes.Movenext
Pergi ke
strlist = strlist & </pilih>
RSBookTypes.Close
Atur rsbookTypes = tidak ada
'Periksa daftarnya
Aplikasi (BookTypes) = STRList
Akhiri jika
BookTypes = STRLIST
Fungsi akhir
%>
Kode ini tidak hanya membuka set rekaman, tetapi juga memeriksa apakah nilai bookType variabel aplikasi kosong. Jika tidak kosong, isi variabel digunakan. Jika kosong, set rekaman dibuka seperti sebelumnya. Jelas, begitu orang pertama menjalankan rutin ini, data di -cache, jadi ini hanya berguna untuk data yang tidak sering diubah.
Jika Anda ingin cache data berdasarkan pengguna, Anda dapat menggunakan variabel dalam ruang lingkup sesi, tetapi Anda harus mencatat bahwa sesi tersebut memiliki tanggal kedaluwarsa. Setelah kedaluwarsa, variabel lapisan sesi akan dibatalkan bersama dengan sesi, dan kode dapat mengakhiri menjalankan.
Menggunakan alat stres aplikasi web, hasil analisis pada Tabel 9-4 diperoleh:
Tabel 9-4 Hasil analisis yang diperoleh adalah menggunakan alat
metode
Klik halaman
Tidak ada cache
190
Memiliki cache
11000
Jelas bahwa kinerja telah membaik. Tapi jangan gunakan metode di atas untuk menyimpan semuanya. Bagaimanapun, pendekatan ini hanya berlaku untuk data yang telah diformat untuk ditampilkan. Selain itu, pertimbangkan bahwa jika server web hanya melayani orang tertentu, itu bukan penggunaan server web yang khas. Menggunakan IS memungkinkan Anda untuk mensimulasikan banyak pengguna pada server tunggal, yang memungkinkan Anda untuk menguji aplikasi Anda secara lebih realistis.
Dengan mensimulasikan sejumlah pengguna, alat stres aplikasi web dapat menguji toleransi halaman web. Alat ini memiliki antarmuka grafis sederhana yang sangat mudah digunakan. Informasi lebih lanjut dapat diperoleh dari http://homer.rte.microsoft.com/ atau unduh alat tersebut.
Objek cache
Apa yang harus saya lakukan jika saya ingin menyimpan data yang tidak diformat? Bisakah itu digunakan dengan cara yang berbeda di berbagai tempat? Tentu saja, Anda juga dapat melakukan ini dengan variabel aplikasi atau sesi. Pertimbangkan judul buku. Anda mungkin ingin menggunakan judul ini di beberapa halaman, mungkin menampilkan semua judul dalam satu tabel, atau menampilkannya di kotak daftar untuk dipilih pengguna, dll. Anda mungkin memikirkan caching catatan yang ditetapkan tanpa harus men -cache teks HTML dengan tag.
Objek dapat di -cache dalam variabel aplikasi atau sesi, tetapi ada dua masalah utama yang harus diperhatikan:
· Objek yang disimpan dalam variabel aplikasi harus mendukung utas gratis, sehingga mereka harus menjadi objek utas gratis atau objek utas ganda. Ini berarti bahwa komponen yang dibuat oleh VB tidak dapat di -cache dalam variabel aplikasi.
· Menyimpan objek utas unit dalam keadaan sesi berarti bahwa utas yang membuat objek adalah satu -satunya utas yang memungkinkan akses ke sana. Oleh karena itu, IIS tidak dapat menyelesaikan manajemen utas lebih baik karena halaman apa pun yang mencoba mengakses objek ini harus menunggu utas asli untuk melayani halaman. Ini akan membunuh setiap peluang untuk memperluas aplikasi.
Untuk diskusi masalah threading, lihat Bab 15.
Secara default, ADO dimuat sebagai objek utas unit, terutama karena beberapa penyedia DB OLE tidak aman. Ada file registri di direktori instalasi ADO yang mengubah ADO menjadi model dua utas, sehingga memungkinkan objek ADO disimpan dengan aman di objek aplikasi dan sesi.
Anda mungkin berpikir bahwa semua masalah diselesaikan dan peningkatan kecepatan yang signifikan dapat dicapai dengan menggunakan berbagai jenis objek, tetapi itu belum tentu terjadi. Banyak yang menyadari bahwa karena menghubungkan ke database adalah operasi yang relatif mahal, caching objek koneksi dapat menghemat banyak waktu saat menghubungkan lagi. Ini benar, tetapi caching objek koneksi berarti bahwa koneksi tidak akan pernah ditutup, sehingga kumpulan cache koneksi relatif tidak efisien. Satu ide yang terhubung ke kumpulan cache sebenarnya adalah untuk mengurangi sumber daya yang digunakan di server, dan caching objek dalam keadaan ASP jelas tidak dapat mengurangi penggunaan sumber daya. Bahkan, mereka juga ditingkatkan karena setiap cache objek mengambil sumber daya server, yang akan sangat mengurangi efisiensi server web untuk situs yang sibuk.
Jadi objek koneksi tidak boleh disimpan, tetapi bagaimana dengan objek Recordset, terutama rekor yang terputus? Dengan asumsi ADO telah berubah dari utas unit menjadi utas ganda, tidak ada alasan untuk tidak melakukan ini, selama Anda tahu persis apa yang Anda lakukan. Jangan berpikir bahwa ini akan secara otomatis meningkatkan kinerja halaman ASP. Setiap set catatan yang di -cache mengambil sumber daya server dalam hal memori dan manajemen ASP, jadi jangan cache set catatan besar.
Bagikan: ASP Baca dan Tulis Tabel Pendaftaran Contoh: Berikut ini adalah konten yang direferensikan: <%DIM readComputName Atur readComputName = createObject (wscript.shell) Dim Computername, REG