改进性能和样式的 25+ ASP 技巧

技巧|性能

改进性能和样式的 25+ ASP 技巧

--------------------------------------------------------------------------------
Len Cardinal - Microsoft Consulting Services 高级顾问
George V. Reilly - Microsoft IIS Performance 主管
更新时间:2000年4月
根据 Nancy Cluts 的文章(英文)改写
Nancy Cluts - 开发人员技术工程师
Microsoft Corporation

摘要:本文提供了优化 ASP 应用程序和 VBScript 的技巧。

目录

简介

技巧 1:在 Web 服务器上缓存常用数据

技巧 2:在 Application 或 Session 对象中缓存常用数据

技巧 3:在 Web 服务器磁盘上缓存数据和 HTML

技巧 4:避免在 Application 或 Session 对象中缓存非灵活组件

技巧 5:不要在 Application 或 Session 对象中缓存数据库连接

技巧 6:妙用 Session 对象

技巧 7:在 COM 对象中封装代码

技巧 8:晚点获取资源,早点释放资源

技巧 9:进程外的执行将牺牲可靠性

技巧 10:显式使用选项

技巧 11:在子例程和函数中使用局部变量

技巧 12:将常用数据复制到脚本变量

技巧 13:避免重新定义数组

技巧 14:使用响应缓冲

技巧 15:批处理内嵌脚本和 Response.Write 语句

技巧 16:在开始长时间的任务之前先使用 Response.IsClientConnected

技巧 17:使用 <OBJECT> 标记实例化对象

技巧 18:使用 ADO 对象和其他组件的 TypeLib 绑定

技巧 19:利用浏览器的验证能力

技巧 20:在循环中避免字符串串联

技巧 21:启用浏览器和代理缓存

技巧 22:尽可能使用 Server.Transfer 替代 Response.Redirect

技巧 23:在目录 URL 尾部加斜线

技巧 24:避免使用服务器变量

技巧 25:升级为最新的和最好的版本

技巧 26:调整 Web 服务器

技巧 27:进行性能测试

技巧 28:读取资源链接

--------------------------------------------------------------------------------

简介

性能是一个特性。您需要预先设计性能,或是在日后重新编写应用程序。换句话说,什么是最大限度优化 Active Server Pages (ASP) 应用程序性能的好策略?

本文为优化 ASP 应用程序和“Visual Basic(R) 脚本编辑器 (VBScript)”提供了许多技巧。对许多陷阱和缺陷进行了讨论。本文所列的建议均在 http://www.microsoft.com 及其他站点上进行了测试,而且工作正常。本文假定您对 ASP 开发有基本的理解,包括对 VBScript 和/或 JScript、ASP Application、ASP Session 和其他 ASP 内部对象(请求、响应和服务器)。

ASP 的性能,通常不止取决于 ASP 代码本身。我们并不想在一篇文章中囊括所有的至理名言,只在最后列出与性能相关的资源。这些链接包括 ASP 和非 ASP 主题,包括“ActiveX(R) 数据对象 (ADO)”、“部件对象模型 (COM)”、数据库和“Internet 信息服务器 (IIS)”配置。这些是我们喜欢的链接 - 务请关注它们。

技巧 1:在 Web 服务器上缓存常用数据

典型的 ASP 页从后端数据库检索数据,然后将结果转换为超文本标记语言 (HTML)。无论数据库的速度如何,从内存检索数据要比从后端数据库检索数据快得多。从本地硬盘读取数据通常也要比从数据库检索数据快得多。因此,通常可以通过在 Web 服务器(在内存或磁盘)上缓存数据来改善性能。

缓存是典型的空间与时间的折衷。如果恰当地缓存数据,您将看到性能会有惊人的提高。为使缓存发挥效力,它必须保持经常重用的数据,而且重新计算这些数据的代价是昂贵的或比较昂贵的。如果缓存充满了垃圾数据,则是对存储器的浪费。

不经常变化的数据也是缓存的候选数据,因为您无须担心数据与数据库的同步问题。组合框、引用表、DHTML 碎片、可扩展标记语言 (XML) 字符串、菜单项和站点配置变量(包括数据源名称 (DSN)、Internet 协议 (IP) 地址和 Web 路径)都是缓存的候选数据。注意,您可以缓存数据的表示而不是数据本身。如果 ASP 页不经常更改,而且缓存的成本也非常高(例如,整个产品目录),请考虑预先生成 HTML,而不是在每次请求时重新绘制。

数据应缓存在何处,有哪些缓存策略?数据经常缓存在 Web 服务器内存或 Web 服务器磁盘上。下面两个技巧讨论这些选项。

技巧 2:在 Application 或 Session 对象中缓存常用数据

ASP Application 和 Session 对象为在内存中缓存数据提供了方便的容器。既可以将数据赋予 Application 对象,也可将数据赋予 Session 对象,这些数据在 HTTP 调用中将保留在内存中。Session 数据按用户存储,而 Application 数据在所有用户间共享。

何时将数据载入 Application 或 Session?通常,在 Application 或 Session 启动时加载数据。要在 Application 或 Session 启动时加载数据,请在下面两函数中添加相应的代码:Application_OnStart() 或 Session_OnStart()。这两个函数应该位于 Global.asa;如果没有,可以添加这些函数。也可以在第一次需要数据时加载数据。要进行上述操作,请在 ASP 页中添加一些代码(或编写可重用的脚本函数),这些代码检查数据是否存在,并在数据不存在时加载数据。这是称为迟缓计算的经典性能技术的例子 - 在您的确需要它之前,不进行计算。请看例子:

<%
Function GetEmploymentStatusList
Dim d
d = Application("EmploymentStatusList")
If d = "" Then
' FetchEmploymentStatusList 函数(不显示)
' 从 DB 中取出数据,返回数组
d = FetchEmploymentStatusList()
Application("EmploymentStatusList") = d
End If
GetEmploymentStatusList = d
End Function
%>

可以为每一块所需的数据编写类似的函数。

数据应该以什么格式存储?任何变量类型均可存储,因为所有脚本变量是各不相同的。例如,可以存储字符串、整型或数组。通常,您将以这些变量类型之一存储 ADO 记录集的内容。若要获取 ADO 记录集衍生的数据,可以手工将数据复制到 VBScript 变量中,每次一个字段。使用一个 ADO 记录集保留函数 GetRows()、GetString() 或 Save() (ADO 2.5),会更快更简便。完整而详细的内容已超出了本文的范围。下面的演示函数使用了 GetRows() 来返回记录集数据的数组:

' 取记录集,以数组返回
Function FetchEmploymentStatusList
Dim rs
Set rs = CreateObject("ADODB.Recordset")
rs.Open "select StatusName, StatusID from EmployeeStatus", _
"dsn=employees;uid=sa;pwd=;"
FetchEmploymentStatusList = rs.GetRows() ' 以数组返回数据
rs.Close
Set rs = Nothing
End Function

对上面示例的进一步改进应当是缓存该列表的 HTML,而不是缓存数组。下面是一个简单的范例:

' 取记录集,以“HTML 选项”列表返回
Function FetchEmploymentStatusList
Dim rs, fldName, s
Set rs = CreateObject("ADODB.Recordset")
rs.Open "select StatusName, StatusID from EmployeeStatus", _
"dsn=employees;uid=sa;pwd=;"
s = "<select name=""Employment

时间: 2024-09-20 00:03:30

改进性能和样式的 25+ ASP 技巧的相关文章

改进性能和样式的 24个 ASP 技巧第1/2页_应用技巧

祥细内容: 简介  技巧 1:在 Web 服务器上缓存常用数据  技巧 2:在 Application 或 Session 对象中缓存常用数据  技巧 3:在 Web 服务器磁盘上缓存数据和 HTML  技巧 4:避免在 Application 或 Session 对象中缓存非灵活组件  技巧 5:不要在 Application 或 Session 对象中缓存数据库连接  技巧 6:妙用 Session 对象  技巧 7:在 COM 对象中封装代码  技巧 8:晚点获取资源,早点释放资源  技巧

改进性能和样式的24个ASP 技巧_ASP基础

简介 技巧 1:在 Web 服务器上缓存常用数据 技巧 2:在 Application 或 Session 对象中缓存常用数据 技巧 3:在 Web 服务器磁盘上缓存数据和 HTML 技巧 4:避免在 Application 或 Session 对象中缓存非灵活组件 技巧 5:不要在 Application 或 Session 对象中缓存数据库连接 技巧 6:妙用 Session 对象 技巧 7:在 COM 对象中封装代码 技巧 8:晚点获取资源,早点释放资源 技巧 9:进程外的执行将牺牲可靠性

改进性能和样式的 24个 ASP 技巧第1/2页

祥细内容: 简介 技巧 1:在 Web 服务器上缓存常用数据 技巧 2:在 Application 或 Session 对象中缓存常用数据 技巧 3:在 Web 服务器磁盘上缓存数据和 HTML 技巧 4:避免在 Application 或 Session 对象中缓存非灵活组件 技巧 5:不要在 Application 或 Session 对象中缓存数据库连接 技巧 6:妙用 Session 对象 技巧 7:在 COM 对象中封装代码 技巧 8:晚点获取资源,早点释放资源 技巧 9:进程外的执行

改进性能和样式的24个ASP 技巧

技巧|性能 1.ASP技巧集锦(官方权威版)-7 [2005-02-23]     2.ASP技巧集锦(官方权威版)-6 [2005-02-23]     3.ASP技巧集锦(官方权威版)-5 [2005-02-23]     4.ASP技巧集锦(官方权威版)-4 [2005-02-23]     5.ASP技巧集锦(官方权威版)-3 [2005-02-23]     6.ASP技巧集锦(官方权威版)-2 [2005-02-23]     7.ASP技巧集锦(官方权威版)-1 [2005-02-

改进性能和样式的 24个 ASP 技巧

技巧|性能|技巧|性能 简介 技巧 1:在 Web 服务器上缓存常用数据 技巧 2:在 Application 或 Session 对象中缓存常用数据 技巧 3:在 Web 服务器磁盘上缓存数据和 HTML 技巧 4:避免在 Application 或 Session 对象中缓存非灵活组件 技巧 5:不要在 Application 或 Session 对象中缓存数据库连接 技巧 6:妙用 Session 对象 技巧 7:在 COM 对象中封装代码 技巧 8:晚点获取资源,早点释放资源 技巧 9:

ASP技巧集锦(官方权威版)-7

技巧 技巧 21:启用浏览器和代理缓存默认情况下,ASP 禁用浏览器和代理中的缓存.这将很有意义,因为 ASP 生来就是动态的,具有潜在地对时间敏感的信息.如果有一个不需要对每次查看进行刷新的页,则应该启用浏览器和代理缓存.这使得浏览器和代理能在某一段时间内,使用某一页的缓存副本,这时间的长短可以控制.缓存能明显减轻服务器负荷,使用户的感受好一些.哪种动态页可以缓存?举例说明:天气页,每 5 分钟更新一次.列出新闻的主页或新闻发布的主页,每天更新 2 次. 公共基金运营列表,基本的统计数小时更新

ASP技巧集锦(官方权威版)-1

技巧 简 介 性能是一个特性.您需要预先设计性能,或是在日后重新编写应用程序.换句话说,什么是最大限度优化 Active Server Pages (ASP) 应用程序性能的好策略? 本文为优化 ASP 应用程序和"Visual Basic(R) 脚本编辑器 (VBScript)"提供了许多技巧.对许多陷阱和缺陷进行了讨论.本文所列的建议均在 http://www.microsoft.com 及其他站点上进行了测试,而且工作正常.本文假定您对 ASP 开发有基本的理解,包括对 VBSc

学习ASP技巧:提高ASP页面的执行效率

技巧|页面|执行 导言 改善程序性能是一件很微妙的事情.尤其是和INTERNET相关的程序,像ASP程序,制约其性能的因素很多,像WEB服务器.TCP/IP网络和数据库服务器等.这些大都是与硬件相关.其实在软件上,好的程序设计的方法和正确的参数配置也可以提高程序的性能,有时在同等情况下只要改变一个参数,程序执行效率就能大大提高.本文就试着在这方面做些探索. 一.影响性能的因素 ASP程序运行的性能主要决定于以下2个大方面: 1.HTML页面的执行效率 2.反应时间,其中反应时间主要受制于下面要素

创建CSS样式表的十个技巧

  如果你想成为一位CSS专家的话,光背出一堆选择器是不够的,还要能够提高CSS样式表的可读性,开发效率以及维护性.这里,Jina Bolton 将给我们分享一下她关于如何创建性感的CSS样式表的十个技巧. 本文主要内容为:CSS代码编码规范,教你如何写出整洁漂亮性感的css代码,如何清晰的组织你的样式表文件.闲言少叙,直接进入正题 1. 不要在HTML文件中使用CSS样式定义 相信对于多数有一定工作经验的设计师来说,使用外部样式表来定义CSS样式是小菜一碟的工作.但我在这里仍然需要再次告诉你这