从8个方面优化ASP代码

来源:CSDN 时间:2007-09-16 18:01:00 

ASP(Active Server Page)是Microsoft公司推出的基于PWS(Personal Web Server)&IIS(InternetInformation Server)平台的、基于ISAPI(InternetServiceAPI)原理的 * 页开发技术,目前日趋成熟完善。在这里仅就asp代码优化进行一些简单讨论。
1、  声明VBScript变量

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

2、  对URL地址进行编码

在我们使用asp动态生成一个带参数URL地址并进行跳转时,在IE中解析很正常,但在NetScrape浏览时却有错误如下:
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.
解决方法是对生成的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.redirect URL & "?" & var1 & var2 & var3  
%> 


3、  清空对象

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

<% 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 "数据库为空" 
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 
%> 


4、使用字符串建立SQL查询
使用字符串来建立查询并不能加快服务器的解析速度,相反,它还会增加服务器的解析时间。但在这里仍然推荐使用字符串代替简单的查询语句来进行查询。这样做的好处是,可以迅速发现程序问题所在,从而便利高效地生成程序。示例如下:

<%mySQL= ""select * " 
mySQL= mySQL & "from publishers" 
mySQL= mySQL & "where state=’NY’" 
response.write mySQL 
set rstemp=conntemp.execute(mySQL) 
rstemp.close 
set rstemp=nothing 
%> 


标签:优化,asp
0
投稿

猜你喜欢

  • 在Python的列表中利用remove()方法删除元素的教程

    2023-03-21 12:42:39
  • vue2.0 可折叠列表 v-for循环展示的实例

    2024-04-28 09:32:22
  • 自动完成JS类(纯JS, Ajax模式)

    2024-05-11 09:41:59
  • php7性能提升的原因详解

    2024-05-03 15:34:19
  • javascript unicode与GBK2312(中文)编码转换方法

    2024-04-17 10:09:36
  • python smtplib模块自动收发邮件功能(二)

    2023-09-29 19:52:28
  • python 输出所有大小写字母的方法

    2021-01-05 01:02:57
  • Python中super().__init__()测试以及理解

    2023-08-25 02:22:04
  • 一文带你吃透Python中的os和sys模块

    2022-01-04 20:42:55
  • 如何把小写数字转换成英文?

    2009-11-06 13:59:00
  • 比较SQL Server约束和DML触发器

    2008-12-24 15:54:00
  • python协程之动态添加任务的方法

    2021-03-24 04:27:54
  • Python实现检测服务器是否可以ping通的2种方法

    2023-06-07 20:18:14
  • div水平垂直居中方法(淘宝招聘css题目)

    2007-10-25 12:48:00
  • css去掉checkbox边框的方法

    2011-06-06 10:32:00
  • Python实现查找系统盘中需要找的字符

    2022-10-02 02:35:50
  • 总结Pyinstaller打包的高级用法

    2021-03-27 02:48:16
  • python中使用np.delete()的实例方法

    2023-02-07 10:19:47
  • 服务端XMLHTTP(ServerXMLHTTP in ASP)基本应用(上)

    2008-11-11 12:49:00
  • pytorch实现好莱坞明星识别的示例代码

    2022-11-28 14:26:47
  • asp之家 网络编程 m.aspxhome.com