www.chinaeduz.com  

网校首页 | 业界新闻 | 电脑网校 | 软件下载 | 网校论坛 | 网校联盟

电脑入门 | 网页设计 | 网络编程 | 图形图象 | 三维空间 | 影视制作 | 程序语言 | 操作系统 | 系统专题 | 办公应用 | 软件宝典 | 硬件天下 | 

   您的位置:首页 >> 网络编程 >> ASP >> 新闻正文
如何增强ASP程序性能(3)

作者:  时间:2001-10-12 14:42:59  来自:  责任编辑:  阅读次数:

如何增强ASP程序性能(3)共有2第1页 第2页

s = s & " <td>" & fld.Value & "</td> "
Next
s = s & " </tr>"
rs.MoveNext
Wend

s = s & vbCrLf & "</table>" & vbCrLf
Response.Write s

  这存在几个问题。首先是重复的连接字符串消耗二次方的时间,而且,运行的时间与计算的字段数量也是平方的关系。下面的简单例子更清楚地说明这一点:


s = ""
For i = Asc("A") to Asc("Z")
s = s & Chr(i)
Next

  在第1层循环时,S的值是“A”;第2层循环时,VBScript要重新分配字符串,拷贝了2个字符(“AB”)到S中;第3层循环时,需要再重新分配并且拷贝3个字符到S中。在第N层循环时,就需要重新分配并拷贝N个字符到S中。那就是1+2+3+...+N的总和,也就是N*(N+1)/2个拷贝。

  在上面的记录集例子中,如果有100个记录和5个字段,内部循环就要执行100*5=500次,并且,完成所有拷贝和再分配任务的时间将接近500*500=250,000。这还是一个适当尺寸记录集的拷贝工作。

  在这个例子中,可以通过替换字符串连接为Response.Write()或者行内脚本(< % =fld.Value % >)的方法提高程序性能。如果response buffering打开(也应该打开),这将很快,因为Response.Write仅仅附加数据在缓冲区的尾部,而且不需要再分配。

  如果用JScript连接字符串,强烈建议使用“+=”操作符,就是说,使用s+=“字符串”,而不是s = s+“字符串”。

技巧15:打开浏览器和代理的缓冲

  默认情况下,ASP禁止了浏览器和代理的缓冲功能。如果有一个每次都不要更新的页面,就应该打开浏览器和代理的缓冲,这将允许浏览器和代理在一段时间内使用该页面的“缓冲”拷贝数据。缓冲能够大大地减轻服务器的数据转载量,并提高用户的浏览性能。

哪些类别的动态页面适合被缓存呢?下面是一些例子:


天气页面,每5分钟更新一次
新闻或版本列表页面,每天更新2次
  注意:使用浏览器或者代理缓存后,对Web服务器的点击次数就会减少。如果想精确地了解所有页面,或者对于邮递广告,就不适于使用浏览器和代理缓存了。

  浏览器缓存由HTTP“Expires”头参数控制,它由Web服务器发送给浏览器。ASP提供了2个简单的方法发送这个头部参数。设置页面在未来一定时间内到期,可以使用Response.Expires属性。下面的例子将告诉浏览器内容在10分钟后过期:

< % Response.Expires = 10 % >

  设置Response.Expires为负数或者0,就禁止了缓存。对第2个属性Response.ExpiresAbsolute的设置,允许指定在一个特殊时间到来时内容过期。

< % Response.ExpiresAbsolute = #May 31,2001 13:30:15# % >

  除了使用Response对象来设置到期时间,还可以在HTML文件头部写< META >标记。尽管代理不会注意到这个标记,但是一些浏览器可以。

< META HTTP-EQUIV="Expires" VALUE="May 31,2001 13:30:15" >

  最后,对于HTTP代理,使用Response.CacheControl可以指示是否缓存内容。设置属性为“Public”,打开代理缓存内容的功能。

< % Response.CacheControl = "Public" % >

  默认情况下,这个属性是设置成“Private”的。注意:不要让代理缓冲那些显示给特定用户的页面,因为代理可能会将属于其他用户的页面送给当前用户。

如何增强ASP程序性能(3)共有2第1页 第2页

相关文章 最新文章 推荐文章
·数据库正规化和设计技巧
·数据库正规化和设计技巧
·判断文章中文字符数量
·利用ASP存取各种常用类型数据库(1)
·利用ASP存取各种常用类型数据库(4)
·ASP直接调用EXCEL数据的例子(不用ODBC)
·如何正确显示数据库中的图片
·利用sql的存储过程实现dos命令的asp程序

  中华网校(chinaeduz.com)依法保护知识产权,如果我们的文章有涉及或侵犯您的有关权益,请即时与我们联系, 注明网址及文章,我们会即时处理或删除,感谢您的合作!

 

关于本站 | 广告服务 | 版权声明 | 投稿指南 | 程序支持 | 帮助信息 | 网站地图

 

版权所有 中华网校 & 智锐网校  1999-2004      COPYRIGHT (C) 1999-2004 www.ZhiRui.com ALL RIGHTS RESERVED