|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。静态|速率|网页 技能之一:进步利用Request汇合的效力
会见一个ASP汇合来提取一个值是费时的、占用盘算资本的历程。由于这个操纵包括了一系列对相干汇合的搜刮,这比会见一个部分变量要慢很多。因而,假如盘算在页面中屡次利用Request汇合中的一个值,应当思索将其存贮为一个部分变量。比方将代码写成上面的情势以加速剧本引擎处置速率:
strTitle=Request.Form("Title")
strFirstName=Request.Form("FirstName")
strLastName=Request.Form("LastName")
IfLen(strTitle)ThenstrTitle=strTitle&""
IfstrFirstName=""ThenstrFullName=strTitle&""&strLastName
ElseifLen(strFirstName)=1Then
strFullName=strTitle&strFirstName&"."&strLastName
Else
strFullName=strTitle&strFirstName&""&strLastName
EndIf
技能之二:间接会见得当的汇合
假如不是别无选择,不然不要利用strPage=Request("page")的如许的情势来猎取参数,由于这将按按次搜刮全体的汇合―QueryString、Form、Cookies、ClientCertificate、ServerVarible直到发明第一个婚配值的称号。如许做比间接会见得当的汇合效力低,而且是不平安的,除非能相对包管这个值不会呈现在别的一个汇合中。
比方,大概但愿搜刮满意客户哀求的WEB服务器称号,这经由过程呈现在每一个查询中的Request.ServerVarables汇合中寻觅“SERVER_NAME”来完成。但是,假设其他的汇合也包括名为“SERVER_NAME”的值(键名不辨别巨细写),当利用Request("server_Name")时,就会失掉毛病的了局。总而言之,应尽量间接会见得当的汇合。
技能之三:在费时操纵前利用Response.IsClientConnected属性
利用Response.IsClientConnected是察看用户是不是仍连到服务器并正在载进ASP创立的网页的有效体例。假如用户断开毗连或中断下载,我们就不必再华侈服务器的资本创立网页,由于缓冲区内容将被IIS抛弃。以是,对那些必要大批工夫盘算或资本利用较多的网页来讲,值得在每阶段都反省巡游者是不是已离线:
……Codetocreatefirstpartofthepage
IfResponse.IsClientConnectedThen
Response.Flush
Else
Response.End
EndIf
……Codetocreatenextpartofpage
技能之四:优化ASP中的ADO操纵
一般面言,数据组成了WEB站点的实践内容。以是,优化ADO操纵以减速ASP代码实行,非常有效:
a.仅选择所需的列:当翻开ADO纪录集时,除非必要取得一切的列,不然不该主动地利用表名(即SELECT*)。利用独自的列意味着将削减发送到服务器或从服务器掏出的数据量。即便必要利用全体列,独自地定名每一个列也会取得最好的功能,由于服务器不用再注释这些列的名字。
b.尽量的利用存储历程。存储历程是事后编译的程序,含有一个已筹办好的实行企图,以是比SQL语句实行更快。
c.利用得当的光标和锁定形式。假如所做的全体事情只是从纪录会合读取数据,并将其显现在屏幕上,那末就利用缺省的只能前移、只读的纪录集。ADO用来保护纪录和锁定的细节的事情越少,实行的功能就越高。
d.利用工具变量。当遍历纪录集时一个一定能进步功能的办法是利用工具变量指向汇合中的成员。比方:
WhileNotRsGc.EOF
Response.Write"工程称号:"&RsGc("GcMC")&"(工程代码:"&RsGc("GcCode")&")
"
RsGc.MoveNext
Wend
能够用改写为上面的代码以加速实行:
setGcMc=RsGc("GcMc")
setGcCode=RsGc("GcCode")
WhileNotrsGc.EOFResponse.Write"工程称号:"&GcMc&"(工程代码:"&GcCode&")
"RsGc.MoveNext
Wend
新的代码创建了工具变量的援用,以是可使用工具变量而不是实践的变量,这意味着剧本引擎的事情削减了,由于在汇合中举行索引的次数变少了。
技能五:不要混用剧本引擎
我们晓得,ASP页面中既可使用VBScript,也能够利用JScript。可是在统一个页面上同时利用JScript和VBScript则是不成取的。由于服务器必需实例化并实验缓存两个(而不是一个)剧本引擎,这在必定水平上增添了体系包袱。因而,从功能上思索,不该在统一页面中混用多种剧本引擎。
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。 |
|