`
zhaohaolin
  • 浏览: 987257 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ASP代码的一些优化技巧

阅读更多
脚本
• 在ASP程序行首使用Option Explicit
不声明VBScript的变量会加重了服务器的解析负担,进而影响服务器的响应请求速度。为加快速度和方便调试,建议强制进行变量声明。
• 多支选择尽量使用Select Case,避免使用If……ElseIf……ElseIF……End If。使用case语句,可以使程序流程化,执行起来也比if语句来
的快。
• 如果不是别无选择,否则不要使用strPage=Request("page")的这样的形式来获取参数,因为这将按顺序搜索全部的集合—QueryString、Form、Cookies、ClientCertificate、ServerVarible直到发现第一个匹配值的名称。这样做比直接访问适当的集合效率低,并且是不安全的,除非能绝对保证这个值不会出现在另外一个集合中。 
例如,可能希望搜索满足客户请求的WEB服务器名称,这通过出现在每个查询中的Request.ServerVarables集合中寻找“SERVER_NAME”来实现
。然而,假如其他的集合也包含名为“SERVER_NAME”的值(键名不区分大小写),当使用Request("server_Name")时,就会得到错误的结果。

总而言之,应尽可能直接访问适当的集合。

• 在一个页里。如果要多处使用Request.Form("a"),应当把Request.Form赋给一个变量,在页面中多处引用这个变量而不是这个集合。同样,对于rs("a")这样的集合也应当如此。


[数据库]

• 仅选择所需的列。当打开记录集时,不要自动地使用表名(即Select *),除非需要获得所有的列。使用单独的列意味着将减少发送到服务器

或从服务器取出的数据的数量。即使需要使用全部列,单独地命名每个列也会获得最佳的性能,因为服务器不必再解释这些列是什么名字。

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

• 使用存储过程更改数据。这总是比在记录集上使用A D O方法执行速度快。

• 除非必需否则不要创建记录集。运行操作查询时,要确定加入了adExecuteNoRecords选项,这样记录集就不会创建。当仅仅返回一个或两个

字段的单行记录时(比如I D值),也可以在查询状态下使用这种方法。在这种情况下,存储过程和输出参数将会更快。
具体语法:
conn.Execute Sql,,adCmdText + adExecuteNoRecords

• 使用适当的光标和锁定模式。如果所做的全部工作是从记录集中读取数据,并将其显示在屏幕上(比如,创建一个表),那么使用缺省的只能

前移的、只读的记录集。A D O用来维护记录和锁定细节的工作越少,执行的性能就越高。

• 当遍历记录集时一个保证能提高性能的方法是使用对象变量指向集合中的成员。
例如,
考虑下面的遍历记录集的例子。
可以用下面的方法加速代码执行,同时使其更易于理解。
Dim rs,Sql
Server.CreateObject("ADODB.RecordSet")
Sql = "Select a,b FROM db_name orDER BY a DESC"
rs.open Sql,conn,1,1
If rs.Eof and rs.Bof Then
Response.Write("无记录")
Response.End
Else
Dim a,b 
Set a = rs(0)
Set b = rs(1)
Do While Not rs.Eof
Response.Write("a=" & a & ";b=" & b)
rs.MoveNext
Loop
End If
这里使用了两个变量,并指向记录集的rs集合中的特定字段。因为这里建立了一个对象的引用,所以可以使用对象变量而不是实际的变量,这意味着脚本引擎的工作减少了,因为在集合中进行索引的次数变少了。

关于ado常数

要在Asp中使用ado常数,有两种办法。
这种方法的缺点是会造成页面过大。
一个比较好的解决的方法是创建一个对类型库的引用,这种方法不需要将常数包含进ASP文件而直接可以引用常数:

打开记录集时,可以定义记录集打开的游标类型和锁定类型。在adovbs.inc文件中定义了一些常量来定义这些类型。adovbs.inc文件保存在
C:\ProgramFiles\Common Files\System\ado目录下面。

关于RS.OPEN SQL,CONN,A,B

A(游标类型): 

ADOPENFORWARDONLY(=0) 
只读,且当前数据记录只能向下移动

ADOPENKEYSET(=1) 
只读,当前数据记录可自由移动

ADOPENDYNAMIC(=2) 
可读写,当前数据记录可自由移动

ADOPENSTATIC(=3) 
可读写,当前数据记录可自由移动,可看到新增记录

B(锁定类型):

ADLOCKREADONLY(=1) 
缺省锁定类型,记录集是只读的,不能修改记录

ADLOCKPESSIMISTIC(=2) 
悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。

ADLOCKOPTIMISTIC(=3) 
乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。

ADLOCKBATCHOPTIMISTIC(=4) 
批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。

当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。
对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,
数据在这段时间被更新。这减少了资源的使用。 

高级

为了代码重用和网站程序维护。尽量使用类和函数封装。在任何一个可能出现重复代码的地方,都可以考虑用类或函数来实现,而不是简单地Copy代码。
 
分享到:
评论

相关推荐

    ASP编程常用的代码及常函数

    ASP编程常用的代码 Asp编码优化技巧8则 asp的19个基本技巧 一些Asp技巧和实用解决方法 ASP中正则表达式的应用 防止从外部提交数据的方法 ASP数据库语法总结

    Asp.Net性能优化技巧汇总

    主要介绍了Asp.Net性能优化技巧汇总,非常实用的归纳总结,需要的朋友可以参考下

    搜索引擎优化(SEO)知识完全手册+asp.net实现代码+网上资料汇总

    搜索引擎优化(SEO)知识完全手册+asp.net实现代码+网上资料汇总 seo 工具 seo 知识 seo 技巧

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

    主要给大家介绍asp.net中比较常用的26个性能优化技巧,主要设计到asp.net中常用的26个性能优化方面的内容,对于asp.net中常用的26个性能优化技巧感兴趣的朋友可以参考下本

    [源代码] ASP.NET 3.5 电子商务网站开发全程解析

    《ASP NET 电子商务开发实战》新添了许多令人耳目一新的功能 例如 SEO 搜索引擎优化 产品推荐等 使你的网站如虎添翼; 《ASP NET电子商务开发实战》通过一个贯穿全书的案例 为读者提供了实用的电子商务建站指南 ...

    ASP.NET 代码

    51自学网asp.net,课程源代码!周金桥,网名周公,微软2008年7月MVP。...本视频教程立足于ASP.NET的基础知识和开发技巧,以生动的实例和优美的代码向您展示ASP.NET的强大,带您走进ASP.NET Web开发的世界

    Asp编码优化技巧

    ASP(Active Server Page)是Microsoft公司推出的基于PWS(Personal Web Server)&IIS(Internet Information Server)平台的、基于ISAPI(InternetServiceAPI)原理的动态网页开发技术...在这里仅就代码优化进行一些简单讨论。

    ASP.NET数据库管理系统开发实例导航 源代码

    信息管理系统是最为广泛开发和应用的,针对现有ASP.NET图书少有详细案例分析和设计的情况,本书安排了5个典型的ASP.NET开发的Web系统为案例,向读者剖析利用ASP.NET进行系统设计和开发上的特点、思路、方法和技巧,...

    ASP编码优化技巧8则

    1.声明VBScript变量在ASP中,对VBScript提供了强劲的支持,能够无缝集成VBScript的函数、方法,这样给扩展ASP的现有功能提供了很大便利。由于ASP中已经模糊了变量类型的概念,所以,在进行ASP与VBScript交互的过程中...

    ASP.NET公交管理信息系统开发与分析(系统源代码+论文原稿)

    ②掌握ASP.NET开发框架的基本知识和应用技巧;③学习数据库技术在公交管理信息系统中的应用;④提升软件开发和项目管理的能力。 阅读建议: 在学习本资源时,建议读者首先阅读论文原稿,了解公交管理信息系统的背景...

    asp.net(C#)使用中的23个技巧

    C#使用过程中的常用问题 Datagrid的使用,SQL语句优化,数据传值,配实例代码

    ASP.NET 各种分页技巧

    从6.0版起,AspNetPager支持使用主题(Theme)与皮肤(Skin)统一控件的整体样式,配合asp.net 2.0中的DataSource控件,AspNetPager只需要编写短短几行代码,甚至无需编写任何代码,只需设置几个属性就可以实现分页...

    计算机专业毕设精选-asp.net企业资源计划设计(论文+源代码).rar

    学生可以根据自己的需求和兴趣,对源代码进行修改和优化,实现个性化的ERP系统设计。 此外,我们还提供了详细的用户手册和开发者指南,帮助学生快速熟悉系统的使用方法和开发技巧。同时,我们还提供在线技术支持,...

    asp.net4 in C#2010

    在这些网页,你会发现“最佳做法”和密钥数据库和XML的原则,全面的讨论让你知道ASP.NET有效的技巧。该书还强调了面向对象和代码宝贵的编码技术。 读完这本书,你将掌握核心技术并拥有所有的知识,你将开始一个专业...

    计算机专业毕设ASP.NET淘宝店主交易管理系统的设计与实现(源代码+论文).rar

    计算机专业毕设ASP.NET淘宝店主交易管理系统的设计与实现(源代码+论文) 本资源提供了一个基于ASP.NET...通过学习和实践,您将能够掌握ASP.NET技术在电商领域的应用技巧,提升自己的编程能力和解决实际问题的能力。

    ASP3《高级编程》(第二部分)

    9.3 优化 289 9.3.1 常用的ADO技巧 289 9.3.2 对象变量 289 9.3.3 高速缓存大小 290 9.3.4 数据库设计 290 9.3.5 数据高速缓存 291 9.4 数据整形 293 9.4.1 使用数据整形 294 9.4.2 性能 297 9.5 小结 298 ...

    asp.net知识库

    2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0) Server Side ViewState 在服务器端存贮ViewState (ASP.NET 2.0) VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step ...

    ASP+ACCESS网页设计辅导系统(源代码+毕设文档).zip

    虽然没有网上商城系统那样复杂但是我还是运用了在学校学过的ASP技术,和以前学过的各种相关的网页制作工具:Dreamweaver, Flash以及图像处理工具Photoshop的使用方法与技巧,如何利用Access对数据的管理与维护、如何...

    ASP3《高级编程》(第一部分)

    9.3 优化 289 9.3.1 常用的ADO技巧 289 9.3.2 对象变量 289 9.3.3 高速缓存大小 290 9.3.4 数据库设计 290 9.3.5 数据高速缓存 291 9.4 数据整形 293 9.4.1 使用数据整形 294 9.4.2 性能 297 9.5 小结 298 ...

    基于ASP留言本开发系统+毕业论文+幻灯片演示

    基于ASP留言本开发系统程序代码+毕业论文+幻灯片演示 论文目录: 摘 要 I 前 言 1 网站说明 1 开发环境 1 1 开发工具的介绍 2 1.1 IIS概述 2 1.2 ASP技术介绍 2 1.3 ASP技术的优势 3 1.4 Access数据库的特点 4 2 ...

Global site tag (gtag.js) - Google Analytics