ASP编码优化
2018-09-06 12:06
ASP(ActiveServerPage)是Microsoft公司推出的基于PWS(PersonalWebServer)IIS(InternetInformationServer)平台的、基于ISAPI(InternetServiceAPI)原理的动态网页开发技术,目前日趋成熟完善。在这里仅就代码优化进行一些简单讨论。
1、声明VBScript变量
在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数、方法,这样给扩展ASP的现有功能提供了很大便利。由于ASP中已经模糊了变量类型的概念,所以,在进行ASP与vbscript交互的过程中,很多程序员也惯于不声明vbscript的变量,这样加重了服务器的解析负担,进而影响服务器的响应请求速度。
鉴于此,我们可以象在VB中强制用户进行变量声明一样在vbscript中强制用户进行变量声明。实现方法是在ASP程序行首放置<%optionexplicit%>。
2、对URL地址进行编码
在我们使用asp动态生成一个带参数URL地址并进行跳转时,在IE中解析很正常,但在NetScrape浏览时却有错误如下:
HTTPError400
400BadRequest
Duetomalformedsyntax,therequestcouldnotbeunderstoodbytheserver.
Theclientshouldnotrepeattherequestwithoutmodifications.
解决方法是对生成的URL参数使用ASP内置server对象的URLencode方法进行URL编码,例子如下:
<%
URL=xur.asp
var1=username=server.URLencode(xur)
var2=company=server.URLencode(xurstudio)
var3=phone=server.URLencode(021-53854336-186)
response.redirectURL?var1var2var3
%>
3、清空对象
当使用完对象后,首先使用Close方法来释放对象所占用的系统资源;然后设置对象值为“nothing”释放对象占用内存。当年,我就是在一张页面上创建了百余个没有清空对象的记录集而崩溃了我的IIS。下面的代码使用数据库内容建立一个下拉列表。代码示例如下:
<%myDSN=DSN=xur;uid=xur;pwd=xur
mySQL=select*fromauthorswhereAU_ID<100
conntemp.openmyDSN
setrstemp=conntemp.execute(mySQL)
ifrstemp.eofthen
response.write数据库为空
response.writemySQL
conntemp.close
setconntemp=nothing
response.end
endif%>
<%dountilrstemp.eof%>
<%
rstemp.movenext
loop
rstemp.close
setrstemp=nothing
conntemp.close
setconntemp=nothing
%>
4、使用字符串建立SQL查询
使用字符串来建立查询并不能加快服务器的解析速度,相反,它还会增加服务器的解析时间。但在这里仍然推荐使用字符串代替简单的查询语句来进行查询。这样做的好处是,可以迅速发现程序问题所在,从而便利高效地生成程序。示例如下:
<%mySQL=select*
mySQL=mySQLfrompublishers
mySQL=mySQLwherestate=’NY’
response.writemySQL
setrstemp=conntemp.execute(mySQL)
rstemp.close
setrstemp=nothing
%>
本新闻共2页,当前在第1页12