Asp編碼優(yōu)化技巧8則
發(fā)布時(shí)間:2008-08-04 閱讀數(shù): 次 來源:網(wǎng)樂原科技
ASP(Active Server Page)是Microsoft公司推出的基于PWS(Personal Web Server)&IIS(Internet Information Server)平臺(tái)的、基于ISAPI(InternetServiceAPI)原理的動(dòng)態(tài)網(wǎng)頁開發(fā)技術(shù),目前日趨成熟完善。在這里僅就代碼優(yōu)化進(jìn)行一些簡單討論。
1、 聲明VBScript變量
在ASP中,對(duì)vbscript提供了強(qiáng)勁的支持,能夠無縫集成vbscript的函數(shù)、方法,這樣給擴(kuò)展ASP的現(xiàn)有功能提供了很大便利。由于ASP中已經(jīng)模糊了變量類型的概念,所以,在進(jìn)行ASP與vbscript交互的過程中,很多程序員也慣于不聲明vbscript的變量,這樣加重了服務(wù)器的解析負(fù)擔(dān),進(jìn)而影響服務(wù)器的響應(yīng)請(qǐng)求速度。
鑒于此,我們可以象在VB中強(qiáng)制用戶進(jìn)行變量聲明一樣在vbscript中強(qiáng)制用戶進(jìn)行變量聲明。實(shí)現(xiàn)方法是在ASP程序行首放置<% option explicit%>。
2、 對(duì)URL地址進(jìn)行編碼
在我們使用asp動(dòng)態(tài)生成一個(gè)帶參數(shù)URL地址并進(jìn)行跳轉(zhuǎn)時(shí),在IE中解析很正常,但在NetScrape瀏覽時(shí)卻有錯(cuò)誤如下:
HTTP Error 400
400 Bad Request
Due to malformed syntax, the request could not be understood by the server.
The client should not repeat the request without modifications.
解決方法是對(duì)生成的URL參數(shù)使用ASP內(nèi)置server對(duì)象的URLencode方法進(jìn)行URL編碼,例子如下:
<%
URL="xur.asp"
var1="username=" & server.URLencode("xur")
var2="&company=" & server.URLencode("xurstudio")
var3="&phone=" & server.URLencode("021-53854336-186")
response.redirect URL & "?" & var1 & var2 & var3
%>
3、 清空對(duì)象
當(dāng)使用完對(duì)象后,首先使用Close方法來釋放對(duì)象所占用的系統(tǒng)資源;然后設(shè)置對(duì)象值為“nothing”釋放對(duì)象占用內(nèi)存。當(dāng)年,我就是在一張頁面上創(chuàng)建了百余個(gè)沒有清空對(duì)象的記錄集而崩潰了我的IIS 。下面的代碼使用數(shù)據(jù)庫內(nèi)容建立一個(gè)下拉列表。代碼示例如下:
<% myDSN="DSN=xur;uid=xur;pwd=xur"
mySQL="select * from authors where AU_ID<100"
set conntemp=server.createobject("adodb.connection")
conntemp.open myDSN
set rstemp=conntemp.execute(mySQL)
if rstemp.eof then
response.write "數(shù)據(jù)庫為空"
response.write mySQL
conntemp.close
set conntemp=nothing
response.end
end if%>
<%do until rstemp.eof %>
<%
rstemp.movenext
loop
rstemp.close
set rstemp=nothing
conntemp.close
set conntemp=nothing
%>