经验分享ASP编码八原则

发表于:2011-7-07 09:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

#
DotNet

  ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库其它程序进行交互,是一种简单、方便的编程工具。在这里仅就代码优化进行一些简单讨论。

  1、声明VBScript变量

  在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数、方法,这样给扩展ASP的现有功能提供了很大便利。由于ASP中已经模糊了变量类型的概念,所以,在进行ASP与vbscript交互的过程中,很多程序员也惯于不声明vbscript的变量,这样加重了服务器的解析负担,进而影响服务器的响应请求速度。

  鉴于此,我们可以象在VB中强制用户进行变量声明一样在vbscript中强制用户进行变量声明。实现方法是在ASP程序行首放置<% option explicit%>。

  2、对URL地址进行编码

  在我们使用asp动态生成一个带参数URL地址并进行跳转时,在IE中解析很正常,但在NetScrape浏览时却有错误如下:

  1. HTTP Error 400   
  2. 400 Bad Request   
  3. Due to malformed syntax, the request could not be understood by the server.   
  4. The client should not repeat the request without modifications.

  解决方法是对生成的URL参数使用ASP内置server对象的URLencode方法进行URL编码,例子如下:

  1. <%   
  2. URL="xur.asp"   
  3. var1="username=" & server.URLencode("xur")   
  4. var2="&company=" & server.URLencode("xurstudio")   
  5. var3="&phone=" & server.URLencode("021-53854336-186")   
  6. response.redirect URL & "?" & var1 & var2 & var3   
  7. %>

  3、清空对象

  当使用完对象后,首先使用Close方法来释放对象所占用的系统资源;然后设置对象值为“nothing”释放对象占用内存。当年,我就是在一张页面上创建了百余个没有清空对象的记录集而崩溃了我的IIS 。下面的代码使用数据库内容建立一个下拉列表。代码示例如下:

  1. <% myDSN="DSN=xur;uid=xur;pwd=xur"   
  2. mySQL="select * from authors where AU_ID<100"   
  3. set conntemp=server.createobject("adodb.connection")   
  4. conntemp.open myDSN   
  5. set rstemp=conntemp.execute(mySQL)   
  6. if rstemp.eof then   
  7. response.write "数据库为空"   
  8. response.write mySQL   
  9. conntemp.close   
  10. set conntemp=nothing   
  11. response.end   
  12.  end if%>   
  13. <%do until rstemp.eof %>   
  14. <%   
  15. rstemp.movenext   
  16. loop   
  17. rstemp.close   
  18. set rstemp=nothing   
  19. conntemp.close   
  20. set conntemp=nothing   
  21. %>

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号