您当前的位置:首页 > 教学课堂 > .NET技术

ASP 五大高效提速技巧

来源:长沙北大青鸟  发布时间:2015-07-19  北大青鸟新生QQ群:535324780

      技巧之一:提高使用Request集合的效率

 

  访问一个ASP集合来提取一个值是费时的、占用计算资源的过程。因为这个操作包含了一系列对相关集合的搜索,这比访问一个局部变量要慢得多。因此,如果打算在页面中多次使用Request集合中的一个值,应该考虑将其存贮为一个局部变量。

 

  例如将代码写成下面的形式以加快脚本引擎处理速度:

1

2

3

4

5

6

7

8

9

10

strTitle=Request.Form("Title")

   strFirstName=Request.Form("FirstName")

   strLastName=Request.Form("LastName")

   If Len(strTitle) Then strTitle=strTitle & " "

   If strFirstName="" Then strFullName=strTitle & " " & strLastName

   Elseif Len(strFirstName)=1 Then

   strFullName=strTitle & strFirstName & ". " & strLastName

   Else

   strFullName=strTitle & strFirstName & " " & strLastName

   End If

 

技巧之二:直接访问适当的集合 

      如果不是别无选择,否则不要使用strPage=Request("page")的这样的形式来获取参数,因为这将按顺序搜索全部的集合?QueryString、Form、Cookies、ClientCertificate、ServerVarible直到发现第一个匹配值的名称。这样做比直接访问适当的集合效率低,并且是不安全的,除非能绝对保证这个值不会出现在另外一个集合中。 

      例如,可能希望搜索满足客户请求的Web服务器名称,这通过出现在每个查询中的Request.ServerVarables集合中寻找“SERVER_NAME”来实现。然而,假如其他的集合也包含名为“SERVER_NAME”的值(键名不区分大小写),当使用Request("server_Name")时,就会得到错误的结果。总而言之,应尽可能直接访问适当的集合。 

      技巧之三:在费时操作前使用Response.IsClientConnected属性 

   使用Response.IsClientConnected是观察用户是否仍连到服务器并正在载入ASP创建的网页的有用方式。如果用户断开连接或停止下载,我们就不用再浪费服务器的资源创建网页,因为缓冲区内容将被IIS丢弃。所以,对那些需要大量时间计算或资源使用较多的网页来说,值得在每一阶段都检查游览者是否已离线:

1

2

3

4

5

6

7

…… Code to create first part of the page

    If Response.IsClientConnected Then

    Response.Flush

    Else

    Response.End

    End If

    …… Code to create next part of page

 

技巧之四:优化ASP中的ADO操作 

   通常面言,数据构成了WEB站点的实际内容。所以,优化ADO操作以加速ASP代码执行,十分有用: 

   a. 仅选择所需的列:当打开ADO记录集时,除非需要获得所有的列,否则不应自动地使用表名(即SELECT *)。使用单独的列意味着将减少发送到服务器或从服务器取出的数据量。即使需要使用全部列,单独地命名每个列也会获得最佳的性能,因为服务器不必再解释这些列的名字。 

   b. 尽可能的使用存储过程。存储过程是预先编译的程序,含有一个已经准备好的执行计划,所以比SQL语句执行更快。 

   c. 使用适当的光标和锁定模式。如果所做的全部工作只是从记录集中读取数据,并将其显示在屏幕上,那么就使用缺省的只能前移、只读的记录集。ADO用来维护记录和锁定的细节的工作越少,执行的性能就越高。 

   d. 使用对象变量。当遍历记录集时一个肯定能提高性能的方法是使用对象变量指向集合中的成员。例如:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

While Not RsGc.EOF

    Response.Write "工程名称:" & RsGc("GcMC") & "(工程代码:" & RsGc("GcCode")

    & ")

    "

    RsGc.MoveNext

    Wend

   

   

    可以用改写为下面的代码以加快执行:

    set GcMc=RsGc("GcMc")

    set GcCode=RsGc("GcCode")

    While Not rsGc.EOF Response.Write "工程名称:" & GcMc & "(工程代码:"& GcCode & ")

    " RsGc.MoveNext

    Wend

新的代码建立了对象变量的引用,所以可以使用对象变量而不是实际的变量,这意味着脚本引擎的工作减少了,因为在集合中进行索引的次数变少了。 

     技巧五:不要混用脚本引擎 

   我们知道,ASP页面中既可以使用VBs cript,也可以使用Js cript。但是在同一个页面上同时使用Js cript和VBs cript则是不可取的。因为服务器必须实例化并尝试缓存两个(而不是一个)脚本引擎,这在一定程度上增加了系统负担。因此,从性能上考虑,不应在同一页面中混用多种脚本引擎。

 

  • 北大青鸟电话
  • 湖南·长沙市岳麓区望城坡望新路334号(汽车西站附近)

    北大青鸟地址

精品IT课程 SERVICEMORE

学士后java工程师课程

北大青鸟java软件开发工程师课程是北大青鸟学士后品牌下的主打课程...
[详细]

学士后.Net工程师课程

北大青鸟.net开发工程师课程采用情景式教学方式,寓教于乐,具有很强的趣味性...
[详细]

ACCP软件工程师课程

ACCP是北大青鸟最经典的一套课程,专门针对18周岁、高中以上学历的人群设计...
[详细]

开班信息 Class InformationMORE

最新班级
课程名称
班级状态
咨询报名
春季特招班
软件工程师
热招
高薪就业班
软件工程师
热招
Accp精英班
软件工程师
热招
Java精英班
学士后Java
热招

长沙市岳麓区大计职业技能培训学校有限公司(支持你成为一个受人尊重的专业人才)

北大青鸟(长沙大计软件学院)(www.csbdqn.com) 是中国IT培训教育(源于北大,师出名门)致力于培养面向软件开发、电商及互联网领域的高端人才,是一家集ACCP软件工程师、网络营销、互联网产品经理、网页设计、Web前端、PHP、 Android、IOS、Java、C/C++等课程为一体的专业培训机构。大计教育与多家企业实体合作,首创“实训教学” 模式,学员在实训课程中,可以直接进入合作企业研发团队,亲自参与项目的运作,真正做到学以致用、学有所成,避免了培训带来的理论与实践脱节的弊端。

咨询电话(08:00-22:00)4008-0731-86 在线客服点击咨询 大计校区官方微信
扫描二维码,即可亲密互动,
更有极致干货等你来拿!
大计校区技术交流群
扫描二维码,即可与各界大神切磋技
术,更多专业老师为你解疑答惑!
24小时免费电话:4008-0731-86
高考 客服 QQ 电话 学费 报名
Top

24小时客服热线

4008-0731-86

0731-82186801

在线咨询问题请点击 在线客服