Asp编码优化技巧_应用技巧

8条Asp编码优化技巧:

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

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
%>

5、使用case进行条件选择
    在进行条件选择的时候,尽量使用case语句,避免使用if语句。使用case语句,可以使程序流程化,执行起来也比if语句来的快。示例如下:

<%
   FOR i = 1 TO 1000
   n = i
   Response.Write AddSuffix(n) & "<br>"
   NEXT
   %>
   <%
   Function AddSuffix(num)
numpart = RIGHT(num,1)
SELECT CASE numpart
CASE "1"
IF InStr(num,"11") THEN
num = num & "th"
ELSE
num = num & "st"
END IF
CASE "2"
IF InStr(num,"12") THEN
num = num & "th"
ELSE
num = num & "nd"
END IF
CASE "3"
IF InStr(num,"13") THEN
num = num & "th"
ELSE
num = num & "rd"
END IF
CASE "4"
num = num & "th"
CASE ELSE
num = num & "th"
END SELECT
AddSuffix = num
   END FUNCTION
%>

6、使用adovbs.inc文件中定义的常量打开记录集 
    打开记录集时,可以定义记录集打开的游标类型和锁定类型。在adovbs.inc文件中定义了一些常量来定义这些类型。adovbs.inc文件保存在\inetpub\iissamples\IISamples目录下面。下面列举几个常用的游标类型和锁定类型。
游标类型:adOpenFowardOnly游标只能向前;adOpenKeyset游标可向前或者向后,如一用户添加记录,新记录不会出现在记录集中;adOpenDynamic游标动态随意;adOpenStatic记录集不对其他用户造成的记录修改有所反映。
锁定类型:adLockReadOney不能修改记录集中的记录;adLockPessimistic在编辑一条记录时锁定它;adLockOptimstic调用记录集Update方法时才锁定记录;adLockBatchOpeimstic记录只能成批更新。

<!--#INCLUDE VIRTUAL="/ADOVBS.INC" -->
<%
connectme="DSN=xur;uid=xur;pwd=xur"
sqltemp="select * from publishers where name='xur'"
set rstemp=Server.CreateObject("adodb.Recordset")
rstemp.open sqltemp, connectme, adOpenStatic,adLockOptimstic
response.write rstemp.recordcount & " records in<br>" & sqltemp
rstemp.close
set rstemp=nothing
%>

7、避免在使用global.asa文件中进行对象定义 
    由于global.asa文件中的内容可以为站点内所有文件引用,无疑,在global.asa文件中进行对象定义可以省去很多重复工作。比如在global.asa中的application_onstart函数中进行如下定义:

<%SUB application_onstart
set application("theCONN")=server.createobject("adodb.connection")
END SUB %>;

这样就可以在站点任何代码中做类似引用:

<%
mySQL="select * from publishers where state='xur'
set rstemp=application("theconn").execute(mySQL)
%>

同样地,可以在session_onstart函数中创建记录集对象

<%SUB session_onstart
set session("rstemp")=server.createobject("adodb.recordset")
END SUB %>

然后在站点也面中进行如下引用:

<%
mySQL="select * from publishers where state='xur'
set session("rstemp")=conntemp.execute(mySQL)
%>

但这样做的同时也有很大的负面影响,由于Application和session变量都只有在关闭网站的时候才释放占用的资源,所以session参数会浪费大量不必要内存,而且此时application变量成为服务器性能的瓶颈。
解决方法:建立定义对象asp页面,在需要进行调用这些对象的页面上,引入这张asp页面。假设定义对象的asp页面名称为define.asp,则只要在对应asp页面中加入以下语句就能引入该页面。
<!--#INCLUDE VIRTUAL="/define.asp" -->
在进行页面引进时,最好在待引进的asp文件中不要包含<%@LANGUAGE="VBSCRIPT"%>语句。因为在asp文件中,只能有一句由@来定义的脚本解析语言。
8、安全防护 
    asp提供了很好的代码保护机制,所有的asp代码都在服务器端执行而只返回给客户端代码执行结果。即便这样,在老版本的IIS中还可以在文件名后面家::$DATA来查看asp的源代码,这已经属于Web Server安全范畴不在本文讨论范围内。下面提出两点简单的安全注意事项。
   虽然在asp中建议引入文件以inc作为扩展名,在这里仍建议以asp作为引文件的扩展名。当这些代码在安全机制不好的Web Server上运行时,只需在地址栏上输入引入文件的地址(inc为扩展名),就可以浏览该引入文件的内容,这是由于在Web Server上,如果没有定义好解析某类型(比如inc)的动态连接库时,该文件以源码方式显示。
   不要把数据库文件放在网站结构内部,这样,当恶意人士获取数据库路径后,就可以轻易获取该数据库,进而肆意更改数据库内容。比较好的做法是,为数据库建立DSN(Date Source Name),而在进行数据库访问时直接访问该DSN。

以上八条Asp编码优化技巧,每一条都很重要,需要大家细细体会,真正的理解成为自己的东西。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索Asp编码优化技巧
, Asp编码优化
Asp编码
淘宝标题优化技巧、win7优化技巧、aso优化技巧、百度推广优化技巧、淘宝宝贝标题优化技巧,以便于您获取更多的相关知识。

时间: 2024-08-04 04:28:25

Asp编码优化技巧_应用技巧的相关文章

ASP编码优化技巧8则_ASP基础

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

ASP.NET比较常用的26个性能优化技巧_实用技巧

本篇文章主要介绍了"ASP.NET中常用的26个优化性能方法",主要涉及到ASP.NET中常用的26个优化性能方法方面的内容,对于ASP.NET中常用的26个优化性能方法感兴趣的同学可以参考一下.  现在很多客户也慢慢开始注重网站的性能了,同时有很多运营网站的公司也不像以前那样特别在意网站是否非常漂亮,而把更多的精力放在了网站性能优化上面,提供更快更稳定的浏览速度,在这个基础上面进行网站功能上的扩充和完善,那么在asp.net中如何优化性能呢? 1. 数据库访问性能优化 数据库的连接和

ASP.NET常用小技巧_实用技巧

今天为大家介绍6个ASP.NET常用技巧,使用操作简单,具有很高的实用性,记得收藏哦 1.跟踪页面执行  设置断点是页面调试过程中的常用手段,除此之外,还可以通过查看页面的跟踪信息进行错误排查以及性能优化.ASP.NET中启用页面跟踪非常方便,只需在Page指令中加入Trace="True"属性即可:设置断点是页面调试过程中的常用手段,除此之外,还可以通过查看页面的跟踪信息进行错误排查以及性能优化.ASP.NET中启用页面跟踪非常方便,只需在Page指令中加入Trace="T

15种ASP技巧_应用技巧

*技巧1:给应用层文件使用GLOBAL.ASA     将文件加载GLOBAL.ASA中的一个应用层数组中,而不是通过使用ASP文件系统对像在页面上读取文件.     GLOBAL.ASA可用于指定事件脚本,也可用于声明拥有session或应用程序范围的对象.它不直接显示给用户,而是存储应用层事件的信息和对象.然后通过页面就可以指向存有数据的应用层数组.这就意味着每有一个服务器端请求就读一次文件,不是每个用户每页读一次.你可以运行一个独立的ASP文件去刷新应用层数组的内容,同时你也可以考虑使用d

网管经验之谈:局域网维护优化技巧_应用技巧

在建设和维护局域网时,总会遇到各种各样的故障.排除故障.优化系统,是管理局域网最基本的工作之一.笔者从事网管工作已经八年,下面把平时在工作中积累的一些小经验和大家一同来分享,其中包括排除故障.优化性能的角度出发,简单归纳了一些局域网维护及优化的经验和技巧,重讨论了网卡.网线的正确安装.合理设置等问题.希望能让大家更好地去维护电脑.管理网络,从而更好的利用网络去开展的工作. 做局域网维护的时候你是否想过更高效的去开展工作,是否对网络问题能够一击即中?下面我们来简单的谈谈网络的维护与优化. 1.按规

ASP编码优化

编码|优化 ASP(Active Server Page)是Microsoft公司推出的基于PWS(Personal Web Server)&IIS(InternetInformation Server)平台的.基于ISAPI(InternetServiceAPI)原理的动态网页开发技术,目前日趋成熟完善.在这里仅就代码优化进行一些简单讨论. 1. 声明VBScript变量 在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数.方法,这样给扩展ASP的现有功能提供了

Asp编码优化技巧8则(转)

编码|技巧|优化 ASP(Active Server Page)是Microsoft公司推出的基于PWS(Personal Web Server)&IIS(Internet Information Server)平台的.基于ISAPI(InternetServiceAPI)原理的动态网页开发技术,目前日趋成熟完善.在这里仅就代码优化进行一些简单讨论. 1. 声明VBScript变量 在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数.方法,这样给扩展ASP的现有功

Asp编码优化技巧8则

编码|技巧|优化 ASP(Active Server Page)是Microsoft公司推出的基于PWS(Personal Web Server)&IIS(Internet Information Server)平台的.基于ISAPI(InternetServiceAPI)原理的动态网页开发技术,目前日趋成熟完善.在这里仅就代码优化进行一些简单讨论. 1.声明VBScript变量 在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数.方法,这样给扩展ASP的现有功能

ASP.NET性能优化小结(ASP.NET&amp;amp;C#)_实用技巧

ASP.NET: 一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果用动态的SQL语句来返回多个数据集,那用存储过程来替代动态的SQL语句会更好些.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不