源码论坛公告:本站是一个交流学习建站资源的社区论坛,旨在交流学习源码脚本等资源技术,欢迎大家投稿发言! 【点击此处将锦尚放在桌面

源码论坛,商业源码下载,尽在锦尚中国商业源码论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 1236|回复: 7
打印 上一主题 下一主题

全面优化ASP应用程序方法!

[复制链接]

6

主题

124

帖子

737

金币

初级会员

Rank: 1

积分
1610
QQ
跳转到指定楼层
1#
发表于 2010-1-7 02:08:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ASP 本身并不是一种脚本语言,它只是提供了一种使镶嵌在 HTML 页面中的脚本程序得以运行的环境,而在ASP中最常用的脚本语言就是VBScript了。虽然ASP的脚本语言很简单,但是要想让一个ASP程序能够最优化的运行也不是一件简单的事情。
现在国内的网络带宽很有限,网络十分拥挤,如何使得自己的ASP应用程序能够快速的运行就成为了每一个ASP程序员的梦想了。
一. 有关操作数据库的优化方法
我们使用ASP最主要的用途就是对数据库进行操作了,如何更快速的完成这些动作呢?
1. 不要任意使用“SELECT  *  ......”请尽量拾取您所需要的那些字段,比如,一个Table中有10个字段,但是您只会用到其中的一个字段(name),就要使用“select name from yourtable”,而不是用“select * from yourtable”。如果一个table中有50个字段,您需要用到其中的23个字段的时候,大多数程序员就不一定会用“select name,sex,age... from yourtable”测试证明,尽量拾取您所需要的那些字段来使用select语句将会是您的ASP程序至少加快5%左右。
2. 尽可能使用系统存储过程(针对MS SQL Server)。有的时候完成一个读取操作,使用SQL语句和存储过程同样可以完成,但是使用存储过程将会大大加快完成读取操作的速度,也就提高了您的ASP程序运行的速度。
3. 注意您的游标使用方法如果您仅仅是对一个table进行读取操作,那么建议您使用forward-only,read-only游标,因为这种游标读取数据库是最为快速的,尤其是在读取数据量很大的情况下。
4. 不要打开无用的独立记录集。比如在生成一个树型记录集的时候,我们一般不得不打开父记录集以及对应的子记录集,甚至还有孙记录集,其实您可以使用ADO提供的Data Shaping技术来替代打开多个独立的记录集,那样会加快程序的运行速度。(关于Data Shaping的用法可以参考ADO帮助)
5. 记着关闭打开的记录集对象以及连接(Connection)对象。有些程序员总是奇怪为何自己的ASP程序刚开始的时候运行速度很快,可是多运行几遍就越来越慢了呢?甚至出现服务器死机或者频繁宕机的情况。发生这种情况,就很可能是您打开了太多的记录集对象以及连接(Connection)对象而最后却没有关闭他们引起的。使用如下方法进行关闭:YourRecordSet.closeSet YourRecordSet=Nothing
Set YourConnection=Nothing
6. 取得数据库数据的方法。比较您是如何得到记录集的数据的呢?大多数程序员使用YourRecordSet(字段编号),或者YourRecordSet("字段名称"),其实还有其他的使用方法,现在我们就比较一下吧(100条记录):Rs("字段名称")Rs("字段名").ValueRs("字段编号")Set方法数据库回应时间2.967秒2.936秒1.650秒0.586秒2.824秒2.914秒1.611秒0.602秒2.893秒2.943秒1.613秒0.594秒,平均回应时间2.895秒2.931秒1.625秒0.594秒,前三种方法大家都可以看的明白,第四种方法(Set方法)使用:
Dim strSQLStrSQL="select name,sex,age from yourtable"
Dim rs
Set rs=server.createobject("ADODB.RECORDSET")
Rs.open strSQL,conn,1,1
Const fieldsOrder=2
Dim objOrder
Set objOrder=rs(fieldsOrder)
Response.write objOrder  
二. 有关ASP内置对象使用方面的优化方法
1. 尽量减少Session对象和Application对象。使用虽然ASP中提供的这两个对象对我们的编程提供了很大的帮助,但是,对这两个对象要合理的使用,不要滥用。因为大量的使用这两个对象将会极大的增大服务器的负担,严重消耗系统资源。也将使您的ASP程序运行慢如老牛。
2. 要及时的关闭不再使用的对象(尤其是Session和Application)不及时的关闭您所使用的对象会导致系统运行速度变得缓慢。大多数程序员认为Session和Application可以自动消失,但是系统默认30分钟内访问者如果没有任何操作就自动触发Session_OnEnd和Application_OnEnd事件,但是大量的访问者频繁的读取服务器,服务器将在很长的一段时间保持那些已经没有用的Session,Application对象,如果不及时关闭使用完的Session和Application后果将不堪想象了。关闭的方法是:
Set 对象=Nothing
三. 合理使用Include文件。
我们这里说的是指用<!--#include file="xxx"--形式包含进来的文件,并且文件内容全是ASP程序,也就是说您将一些公共的函数放到一个文件中,并在其他有可能调用其中函数的页面包含进来。建议您不要将所有的函数放到一个包含文件中,因为您在其他页面包含这个文件的时候,服务器端是要进行预编译的,很可能在一个包含文件里面有上百个函数,而您只是想要使用其中的一个函数,这样就严重消耗系统资源。所以,尽可能的分割您的包含文件成为多个小的包含文件。这样也可以提高程序的运行速度。
四. 有关VBScript语言方面的优化方法
1.尽量使用系统函数代替自己编写的函数比如要想分割一个有规律的字符串("sss,ddd,fff,ggg"),就不必自己使用什么Mid(),Instr等等函数来分析了,其实VBScript就提供了一个函数 Split(),这样既省时间,又提高了速度。
2.减少动态数组的使用
3.尽可能提前声明变量,提前声明变量会加快程序的解释执行时间。相反,从不声明变量,不但程序难以阅读,整个程序在服务器的执行效率也会大打折扣的。
五. 其他方面的优化方法
1. 在ASP文件中尽量使用<%%嵌入到HTML标签中,而不要使用Response.write的方式,比如:<html<body
<%If ok =1 then %
Hello! World!
<%End If%
</body
</html
就远远比:<%
Response.write "<html"
Response.write " <body"
         If ok =1 thenResponse.write "Hello! World!"
         End IfResponse.write " </body"
Response.write "</html"
%
的运行速度要快,尤其是您的ASP文件比较大的情况下。因为,第二种方式增加了服务器端的解释时间,因而也就降低了ASP程序的性能。
2. 尽量用一个ASP文件完成一个动作很多人喜欢在一个ASP程序中同时完成诸如添加,删除,查找等等多个动作,不要认为这样是有效的利用了文件,相反,这样做的结果是使得应用程序的运行速度减慢很多。应当将添加,删除,查找等分割成单个的独立的ASP文件来完成。这样使得文件不会过于庞大,降低服务器端解释执行的负担,并且阅读程序也很快捷。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
拉拉声`

6

主题

124

帖子

737

金币

初级会员

Rank: 1

积分
1610
QQ
2#
 楼主| 发表于 2010-1-7 02:09:37 | 只看该作者
为了不扰乱会员对源码的测试,有问题咨询右侧客服不要直接回复,否则视为非法信息屏蔽会员ID!
根据admin的要求`发点有意的贴~
拉拉声`

29

主题

693

帖子

112

金币

初级会员

Rank: 1

积分
738
3#
发表于 2010-1-7 09:54:42 | 只看该作者
为了不扰乱会员对源码的测试,有问题咨询右侧客服不要直接回复,否则视为非法信息屏蔽会员ID!
又见软文

0

主题

6

帖子

5

金币

初级会员

Rank: 1

积分
14
4#
发表于 2010-1-7 19:47:29 | 只看该作者
为了不扰乱会员对源码的测试,有问题咨询右侧客服不要直接回复,否则视为非法信息屏蔽会员ID!
支持下多发点

0

主题

30

帖子

3

金币

初级会员

Rank: 1

积分
38
5#
发表于 2010-1-10 22:25:51 | 只看该作者
为了不扰乱会员对源码的测试,有问题咨询右侧客服不要直接回复,否则视为非法信息屏蔽会员ID!
这个不错啊

0

主题

30

帖子

3

金币

初级会员

Rank: 1

积分
38
6#
发表于 2010-1-10 22:30:38 | 只看该作者
为了不扰乱会员对源码的测试,有问题咨询右侧客服不要直接回复,否则视为非法信息屏蔽会员ID!
我来灌你的水

0

主题

30

帖子

3

金币

初级会员

Rank: 1

积分
38
7#
发表于 2010-1-10 22:30:54 | 只看该作者
为了不扰乱会员对源码的测试,有问题咨询右侧客服不要直接回复,否则视为非法信息屏蔽会员ID!
这个不错,我收藏了

17

主题

125

帖子

11

金币

初级会员

Rank: 1

积分
137
8#
发表于 2010-1-11 21:44:44 | 只看该作者
为了不扰乱会员对源码的测试,有问题咨询右侧客服不要直接回复,否则视为非法信息屏蔽会员ID!
这样使得文件不会过于庞大,降低服务器端解释执行的负担,并且阅读程序也很快捷
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

锦尚中国源码论坛

聚合标签|锦尚中国,为中国网站设计添动力 ( 鲁ICP备09033200号 ) |网站地图

GMT+8, 2024-11-15 20:02 , Processed in 0.175691 second(s), 26 queries .

带宽由 锦尚数据 提供 专业的数据中心

© 锦尚中国源码论坛 52jscn Inc. 非法入侵必将受到法律制裁 法律顾问:IT法律网 & 褚福省律师 锦尚爱心 版权申诉 版权与免责声明