AASP adalah aplikasi yang dikembangkan oleh Microsoft untuk menggantikan program skrip CGI. Ini dapat berinteraksi dengan basis data dan program lainnya. Di sini, editor akan memberinya beberapa diskusi sederhana. Konten berikut terutama berbicara tentang prinsip -prinsip penting dari kode penulisan ASP.
1. Deklarasikan variabel vbscript
Dalam ASP, VBScript diberikan dengan dukungan yang kuat dan dapat dengan mulus mengintegrasikan fungsi dan metode VBScript, yang memberikan kenyamanan besar untuk memperluas fungsi ASP yang ada. Karena konsep jenis variabel telah dikaburkan dalam ASP, banyak programmer terbiasa tidak mendeklarasikan variabel VBScript selama interaksi antara ASP dan VBScript, yang meningkatkan beban penguraian server dan dengan demikian mempengaruhi kecepatan permintaan respons server.
Mengingat hal ini, kami dapat memaksa pengguna untuk melakukan deklarasi variabel dalam VBScript seperti kami memaksa pengguna untuk melakukan deklarasi variabel di VB. Metode implementasi adalah menempatkan <% opsi eksplisit%> di awal jalur program ASP.
2. Kode alamat URL
Ketika kami menggunakan ASP untuk secara dinamis menghasilkan alamat URL dengan parameter dan melompat, adalah normal untuk menguraikan di IE, tetapi ketika menjelajah Netscrape, ada kesalahan sebagai berikut:
Kesalahan HTTP 400 400 Permintaan Buruk Karena sintaks yang cacat, permintaan tidak dapat dipahami oleh server. Klien tidak boleh mengulangi permintaan tanpa modifikasi.
Solusinya adalah dengan menggunakan metode urlencode objek server bawaan ASP untuk mengkode parameter URL yang dihasilkan. Contohnya adalah sebagai berikut:
<% Url = "xur.asp" var1 = "username =" & server.urlencode ("xur") var2 = "& company =" & server.urlencode ("xurstudio") var3 = "& phone =" & server.urlencode ("021-538544336-186") response.redir ("021-53854436-186") & var1 & var2 & var3 %>3. Bersihkan objek
Setelah menggunakan objek, pertama -tama gunakan metode tutup untuk membebaskan sumber daya sistem yang ditempati oleh objek; Kemudian atur nilai objek ke "tidak ada" untuk membebaskan memori objek. Saat itu, saya menabrak IIS saya dengan membuat lebih dari 100 rekor di halaman tanpa objek yang jelas. Kode berikut menggunakan konten database untuk membuat daftar drop-down. Contoh kode adalah sebagai berikut:
<% mydsn = "dsn = xur; uid = xur; pwd = xur" mysql = "pilih * dari penulis di mana au_id <100" set conntemp = server.createObject ("conntemp.execute" conntemp. kosong "response.write mysql conntemp.close set conntemp = nothing response.end end end If %> < %do sampai rstemp.eof %> < %rstemp.movenext loop rstemp.close set rstemp = nothing conntemp.close set conntemp = tidak ada % %>4. Buat kueri SQL menggunakan string
Menggunakan string untuk menetapkan kueri tidak mempercepat kecepatan penguraian server. Sebaliknya, itu juga akan meningkatkan waktu penguraian server. Tetapi masih disarankan untuk menggunakan string alih -alih pernyataan kueri sederhana untuk meminta. Keuntungan dari ini adalah bahwa ia dapat dengan cepat menemukan masalah program, sehingga memfasilitasi dan secara efisien menghasilkan program. Contohnya adalah sebagai berikut:
< %mysql = "" Pilih * "mysql = mysql &" dari penerbit "mysql = mysql &" where state = 'ny' "response.write mysql rstemp = conntemp.execute (mysql) rstemp.close set rstemp = tidak ada %>
5. Gunakan kasing untuk memilih kondisi
Saat membuat seleksi bersyarat, cobalah menggunakan pernyataan kasus dan hindari menggunakan pernyataan IF. Menggunakan pernyataan kasus dapat membuat program dapat mengalir dan mengeksekusi lebih cepat daripada pernyataan IF. Contohnya adalah sebagai berikut:
<%Untuk i = 1 hingga 1000 n = I response.write addSuffix (n) & "<br>" selanjutnya%> <%fungsi addsuffix (num) numpart = kanan (num, 1) Pilih case numpart case "1" if instruct (num, "11") lalu num = num & "th" num = num & "st" st "ever if" num "num =" num = "Num =" Th "NUM =" St "St" END "Case" 2 "If" NUM "NUM" NUM ("NUM =" NUMS LOUS = "ST" ST "END IF" CASE "2" IF "NUM" NUM "NUM =" 12 LAIN NUM = "ST" ST "END" KASUS "2" Akhiri jika kasus "3" jika instr instr (num, "13") lalu num = num & "th" else num = num & "rd" end if case "4" num = num & "th" case lain num = num & "th" end pilih addSuffix = num end function %>6. Gunakan konstanta yang didefinisikan dalam file adovbs.inc untuk membuka set rekaman
Saat membuka set rekaman, Anda dapat menentukan jenis kursor dan jenis kunci yang dibuka oleh set rekaman.
Ada beberapa konstanta yang ditentukan dalam file adovbs.inc untuk menentukan jenis ini. File adovbs.inc disimpan di direktori/inetpub/iissamples/iisamples. Di bawah ini adalah beberapa jenis kursor yang umum digunakan dan jenis kunci.
Jenis kursor:
Jenis kunci:
<!-#Sertakan virtual = "/adovbs.inc"-> <% connectMe = "dsn = xur; uid = xur; pwd = xur" sqltemp = "pilih * dari penerbit di mana name = 'xur'" set rstemp = server.createObject ("adodb.recordset") rstemp. respons adlockoptimstic.write rstemp.recordcount & "catatan dalam <br>" & sqltemp rstemp.close set rstemp = tidak ada % %>7. Hindari definisi objek di file global.asa
Karena konten dalam file global.ASA dapat direferensikan oleh semua file di Situs, tidak diragukan lagi, mendefinisikan objek dalam file global.asa dapat menyimpan banyak duplikasi.
Misalnya, dalam fungsi Application_onstart di global.asa, definisi berikut dibuat:
< %Sub application_onstart mengatur aplikasi ("theconn") = server.createObject ("adodb.connection") end sub %>;Ini memungkinkan Anda untuk membuat referensi serupa dalam kode apa pun di Situs:
< % mysql = "Pilih * dari penerbit di mana state = 'xur' atur rstemp = aplikasi (" theconn "). Execute (mysql) %>Demikian pula, objek set rekaman dapat dibuat di fungsi session_onstart
< %Sub session_onstart set session ("rstemp") = server.createObject ("adodb.recordset") end sub %>Kemudian, kutipan berikut dibuat di situs:
< % mysql = "Pilih * dari penerbit WHERE state = 'xur' set sesi (" rstemp ") = conntemp.execute (mysql) %>Namun, melakukan ini juga memiliki dampak negatif yang besar. Karena variabel aplikasi dan sesi hanya melepaskan sumber daya yang ditempati saat menutup situs web, parameter sesi akan menyia -nyiakan banyak memori yang tidak perlu, dan pada saat ini variabel aplikasi menjadi hambatan dalam kinerja server.
Larutan:
Buat halaman ASP untuk mendefinisikan objek, dan perkenalkan halaman ASP ini pada halaman tempat objek ini perlu dipanggil. Dengan asumsi bahwa nama halaman ASP dari objek yang ditentukan didefinisikan.asp, halaman dapat diperkenalkan dengan menambahkan pernyataan berikut ke halaman ASP yang sesuai.
<!-#Sertakan virtual = "/define.asp"->
Saat memperkenalkan halaman, sebaiknya tidak memasukkan <%@language = "vbscript"%> Pernyataan dalam file ASP yang akan diperkenalkan. Karena dalam file ASP, hanya ada satu bahasa parsing skrip yang ditentukan oleh @.
8. Perlindungan Keselamatan
ASP menyediakan mekanisme perlindungan kode yang baik, dan semua kode ASP dijalankan di sisi server dan hanya mengembalikan hasil eksekusi kode klien. Meski begitu, dalam versi lama IIS, Anda dapat melihat kode sumber ASP setelah nama file :: $ data, yang sudah berada dalam ruang lingkup keamanan server web dan tidak berada dalam ruang lingkup artikel ini. Berikut ini adalah dua tindakan pencegahan keamanan sederhana.
Meskipun disarankan untuk memperkenalkan file dengan Inc ASP sebagai ekstensi, masih disarankan untuk menggunakan ASP sebagai ekstensi untuk memperkenalkan file di sini. Ketika kode -kode ini dijalankan di server web dengan mekanisme keamanan yang buruk, Anda dapat menelusuri konten file yang diimpor dengan hanya memasukkan bilah alamat (Inc adalah ekstensi). Ini karena di server web, jika pustaka koneksi dinamis yang menyelesaikan jenis tertentu (seperti INC) tidak ditentukan, file ditampilkan dalam kode sumber.
Jangan letakkan file database di dalam struktur situs web, sehingga ketika orang jahat memperoleh jalur basis data, ia dapat dengan mudah mendapatkan database dan kemudian mengubah konten database secara sewenang -wenang. Pendekatan yang lebih baik adalah membuat DSN (nama sumber tanggal) untuk database, dan mengakses DSN secara langsung saat mengakses database.
Melalui artikel ini, apakah Anda memiliki pemahaman tentang pengkodean ASP? Semoga ini bisa membantu Anda.