Artikel ini memperkenalkan delapan prinsip yang harus kita patuhi saat menulis kode menggunakan ASP. Saya harap ini akan membantu Anda, mari kita lihat bersama!
ASP adalah singkatan dari halaman server aktif, yang berarti halaman server dinamis. ASP adalah aplikasi yang dikembangkan oleh Microsoft untuk menggantikan program skrip CGI. Di sini kami hanya memiliki beberapa diskusi sederhana tentang optimasi kode.
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:
- Httperror400
- 400badRequest
- Duetomalformedsyntax, tidak ada yang tidak bisa diselenggarakan oleh server.
- TheClient tidak perlu diperoleh dengan cara yang tidak masuk akal.
Solusinya adalah dengan menggunakan metode urlencode dari objek server bawaan ASP untuk mengkode URL parameter URL yang dihasilkan.
- <%
- Url = xur.asp
- var1 = nama pengguna = & server.urlencode (xur)
- var2 = & company = & server.urlencode (xurstudio)
- var3 = & phone = & server.urlencode (021-53854336-186)
- response.redirecturl &? & var1 & var2 & var3
- %>
3. Bersihkan objek
Setelah menggunakan objek, pertama -tama gunakan metode tutup untuk membebaskan sumber daya sistem yang ditempati oleh 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*fromauthorswhereau_id <100
- setConnTemp = server.CreateObject (adodb.connection)
- conntemp.openmydsn
- setRstemp = conntemp.execute (mysql)
- ifrstemp.eofthen
- response.write database kosong
- response.writemysql
- conntemp.close
- setConnTemp = tidak ada
- respons.end
- endif%>
- <%dountilrstemp.eof%>
- <%
- rstemp.movenext
- lingkaran
- rstemp.close
- SetRstemp = tidak ada
- conntemp.close
- setConnTemp = tidak ada
- %>
4. Buat kueri SQL menggunakan string
Menggunakan string untuk menetapkan kueri tidak mempercepat kecepatan 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 & fromempublishers
- mysql = mysql & wherestate = 'ny'
- response.writemysql
- setRstemp = conntemp.execute (mysql)
- rstemp.close
- SetRstemp = 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:
- <%
- Fori = 1to1000
- n = i
- Response.writeaddsuffix (n) & <br>
- BERIKUTNYA
- %>
- <%
- Functionaddsuffix (num)
- numpart = kanan (num, 1)
- SELECTCASESENUMPART
- Case1
- Ifinstr (num, 11) lalu
- num = num & th
- KALAU TIDAK
- num = num & st
- Endif
- Kasus2
- Ifinstr (num, 12) lalu
- num = num & th
- KALAU TIDAK
- num = num & nd
- Endif
- Kasus3
- Ifinstr (num, 13) lalu
- num = num & th
- KALAU TIDAK
- num = num & rd
- Endif
- Case4
- num = num & th
- Caseelse
- num = num & th
- Endselect
- AddSuffix = num
- Fungsi endfungsi
- %>
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:
Kursor yang diadopsi hanya dapat bergerak maju;
Kursor AdopenKeyset dapat maju atau mundur.
Dinamika kursor Adopendynamic dan acak;
Set catatan adopsi tidak mencerminkan modifikasi catatan yang disebabkan oleh pengguna lain.
Jenis kunci:
AdlockReadoney tidak dapat memodifikasi catatan dalam set rekaman;
Adlockpessimistic mengunci catatan saat mengeditnya;
Catatan hanya terkunci ketika adlockoptimstic memanggil metode pembaruan set rekaman;
Catatan AdlockBatchopeImstic hanya dapat diperbarui dalam batch.
- <!-#includeVirtual =/adovbs.inc->
- <%
- ConnectMe = dsn = xur; uid = xur; pwd = xur
- sqltemp = pilih*frommpublisherswherename = 'xur'
- setRStemp = server.CreateObject (adodb.recordset)
- rstemp.opensqltemp, connectMe, adoptatic, adlockoptimstic
- response.writersemp.recordcount & recordin <br> & sqltemp
- rstemp.close
- SetRstemp = 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:
- <%Subapplication_onstart
- SetApplication (theconn) = server.CreateObject (adodb.connection)
- Endsub%>;
Ini memungkinkan Anda untuk membuat referensi serupa dalam kode apa pun di Situs:
- <%
- mysql = pilih*frommpublisherswherestate = 'xur'
- setRStemp = Aplikasi (theconn) .Execute (mysql)
- %>
Demikian pula, objek set rekaman dapat dibuat di fungsi session_onstart
- <%Subsesi_onstart
- setSession (rstemp) = server.CreateObject (adodb.recordset)
- Endsub%>
Kemudian, kutipan berikut dibuat di situs:
- <%
- mysql = pilih*frommpublisherswherestate = 'xur'
- setSession (rstemp) = conntemp.execute (mysql)
- %>
Namun, melakukan ini juga memiliki dampak negatif yang besar. pertunjukan. .
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.
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 dari tertentu Ketik (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 pengenalan delapan prinsip tentang pengkodean ASP dalam artikel ini, saya harap ini dapat membantu Anda.