我的位置: 首页 >> 推 广 >> 优化知识

深圳网站建设之asp语言网站的优化技巧

asp语言网站的优化技巧
在asp中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数、方法,这样给扩展asp的现有功能提供了很大便利。由于asp中已经模糊了变量类型的概念,所以,在进行asp与vbscript交互的过程中,很多程序员也惯于不声明vbscript的变量,这样加重了服务器的解析负担,进而影响服务器的响应请求速度。
鉴于此,我们可以象在vb中强制用户进行变量声明一样在vbscript中强制用户进行变量声明。实现方法是在asp程序行首放置<%optionexplicit%>。
在我们使用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&"?"&var1&var2&var3
%>
当使用完对象后,首先使用close方法来释放对象所占用的系统资源;然后设置对象值为“nothing”释放对象占用内存。当年,我就是在一张页面上创建了百余个没有清空对象的记录集而崩溃了我的iis。下面的代码使用数据库内容建立一个下拉列表。代码示例如下:
<%mydsn="dsn=xuruid=xurpwd=xur"
mysql="select*fromauthorswhereau_id<100"
setconntemp=server.createobject("adodb.connection")
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
%>
使用字符串来建立查询并不能加快服务器的解析速度,相反,它还会增加服务器的解析时间。但在这里仍然推荐使用字符串代替简单的查询语句来进行查询。这样做的好处是,可以迅速发现程序问题所在,从而便利高效地生成程序。示例如下:
<%mysql=""select*"
mysql=mysql&"frompublishers"
mysql=mysql&"wherestate='ny'"
response.writemysql
setrstemp=conntemp.execute(mysql)
rstemp.close
setrstemp=nothing
%>
在进行条件选择的时候,尽量使用case语句,避免使用if语句。使用case语句,可以使程序流程化,执行起来也比if语句来的快。示例如下:
<%
fori=1to1000
n=i
response.writeaddsuffix(n)&"<br>"
next
%>
<%
functionaddsuffix(num)
numpart=right(num,1)
selectcasenumpart
case"1"
ifinstr(num,"11")then
num=num&"th"
else
num=num&"st"
endif
case"2"
ifinstr(num,"12")then
num=num&"th"
else
num=num&"nd"
endif
case"3"
ifinstr(num,"13")then
num=num&"th"
else
num=num&"rd"
endif
case"4"
num=num&"th"
caseelse
num=num&"th"
endselect
addsuffix=num
endfunction
%>
打开记录集时,可以定义记录集打开的游标类型和锁定类型。在adovbs.inc文件中定义了一些常量来定义这些类型。adovbs.inc文件保存在inetpubiissamplesiisamples目录下面。下面列举几个常用的游标类型和锁定类型。
游标类型:adopenfowardonly游标只能向前;adopenkeyset游标可向前或者向后,如一用户添加记录,新记录不会出现在记录集中;adopendynamic游标动态随意;adopenstatic记录集不对其他用户造成的记录修改有所反映。
锁定类型:adlockreadoney不能修改记录集中的记录;adlockpessimistic在编辑一条记录时锁定它;adlockoptimstic调用记录集update方法时才锁定记录;adlockbatchopeimstic记录只能成批更新。
<!#includevirtual="/adovbs.inc">
<%
c
sqltemp="select*frompublisherswherename='xur'"
setrstemp=server.createobject("adodb.recordset")
rstemp.opensqltemp,connectme,adopenstatic,adlockoptimstic
response.writerstemp.recordcount&"recordsin<br>"&sqltemp
rstemp.close
setrstemp=nothing
%>

客户中心

版权2005-2020    聚卓网络有限公司    电话:18589057325    QQ:2338754269   粤ICP备14021702号

地址:深圳市宝安区 37区龙井一路100号 新乐社区工作站办公大楼侧门6楼(近翻身路、新乐社区健康服务中心)

技术支持: 网站建设