ASP实用技巧28则技巧 10:显式使用选项 在 .asp 文件中显式使用选项 Explicit。置于 .asp 文件开头的这一指令,强制开发人员声明所有要使用的变量。许多开发人员认为这有助于调试应用程序,因为它避免了错误键入变量名称而不经意地新建变量(例如,MyXLMString=... 而非 MyXMLString=)。 也许更重要的是,声明的变量比未声明的变量快。实际上,脚本运行时,在每次使用未声明变量时按照名称引用。而声明的变量,在编译或运行时分配了序号。这样,声明的变量按照该序号引用。由于选项 Explicit 强制变量声明,因此保证声明了所有变量而实现快速访问。 技巧 11:在子例程和函数中使用局部变量 局部变量是在子例程和函数中声明的变量。在子例程和函数中,局部变量访问要快于全局变量访问。使用局部变量还可以使代码更加清晰,因此尽可能使用局部变量。 技巧 12:将常用数据复制到脚本变量 在 ASP 中访问 COM 时,应该将常用的对象数据复制到脚本变量中。这将削减 COM 方法的调用,COM 方法的调用与访问脚本变量相比,要相对昂贵些。在访问 Collection 和 Dictionary 对象时,这一技术也可以削减了昂贵的查找。 通常,如果打算多次访问对象数据,请将数据放入脚本变量。该优化的主要目标是 Request 变量(Form 和 QueryString 变量)。例如,您的站点可能传递一个名为 UserID 的 QueryString。假定该 UserID 变量要在特定页中引用 12 次。请不要调用 Request("UserID") 12 次,而在 ASP 页的开头将 UserID 赋予某个变量。然后就在页中使用该变量。这将节省 11 次 COM 方法调用。 在实际中,访问 COM 属性或方法暗藏着繁复的过程和大量的开销。下面是一个示例,它只是些相当普通的代码(从语法上讲): Foo.bar.blah.baz = Foo.bar.blah.qaz(1) If Foo.bar.blah.zaq = Foo.bar.blah.abc Then ' ... 在运行这段代码时,将发生下列事件: 变量 Foo 被解析为全局变量。 变量 bar 被解析为 Foo.的成员。这将产生 COM 方法调用。 变量 blah 被解析为 Foo.bar 的成员。这也将产生 COM 方法调用。 变量 qaz 被解析为 foo.bar.blah 的成员。是的,这也将产生 COM 方法调用。 调用 Foo.bar.blah.quaz(1)。又一次产生 COM 方法调用。理解这幅图了吗? 执行步骤 1 到 3 将再次解析 baz。系统不知道调用 qaz 是否更改对象模型,因此步骤 1 到 3 必须再次执行解析 baz。 将 baz 解析为 Foo.bar.blah 的成员。进行属性置入。 再次执行步骤 1 到 3 并解析 zaq。 再次执行步骤 1 到 3 并解析 abc。 正如所见,这是非常可怕的低效率(而且非常慢)。用 VBScript 编写该代码实现的快速方法为: Set myobj = Foo.bar.blah ' 对 blah 做一次解析 Myobj.baz = myobj.qaz(1) If Myobj.zaq = Myobj.abc Then '... 如果您使用的是 VBScript 5.0 或更高版本,则可用 With 语句来写这段代码: With Foo.bar.blah .baz = .qaz(1) If .zaq = .abc Then '... ... End With 请注意该技巧对 VB 编程同样有效。 技巧 13:避免重新定义数组 尽量避免 Redim 数组。从关心性能的角度来说,如果计算机受物理内存的限制,最好一开始将数组的维数设置为最差方案 - 而不要将维数设置为最佳方案,再根据需要重新定义维数。这并不意味着明知道不需要那么多而就是应该分配太多的内存。 下面代码展示了您没有必要地使用了Dim 和 Redim 来解决。 <% Dim MyArray() Redim MyArray(2) MyArray(0) = "hello" MyArray(1) = "good-bye" MyArray(2) = "farewell" ... ' 一些别的代码中,这里您不需要更多的空间,然后 ... Redim Preserve MyArray(5) MyArray(3) = "more stuff" MyArray(4) = "even more stuff" MyArray(5) = "yet more stuff" %> 更好的办法是只须一开始 Dim 数组为正确的大小(本例中为 5),而不是 Redim 数组,再加大数组。这可能会浪费一点儿内存(如果没有用尽所有元素),但是获得的是速度。 技巧 14:使用响应缓冲 您可以通过打开“响应缓冲区”来缓冲值得输出的整个页。这将写入浏览器的数据量降为最小,从而提高总体性能。每次写入都会有大量开销(包括 IIS 和通过电缆发送的数据量),因此写入的越少越好。TCP/IP 的工作效率,在发送少量大的数据块时明显高于发送大量小的数据块时,原因在于它的低速启动和 Nagling 算法(用于最小化网络阻塞)。 打开响应缓冲有两种方法。第一种,可以使用“Internet 服务管理器”为整个应用程序打开响应缓冲。这是推荐的方法,在 IIS 4.0 和 IIS 5.0 中,在默认情况下,为新的 ASP 应用程序打开响应缓冲。第二种,逐页将下列代码行放在 ASP 页的开头,从而启用响应缓冲: 上一篇:在ASP程序中执行SQL语句的安全性问题 下一篇:ASP中用Join和Array,可以加快字符连接速度。 更多相关文章
|
推荐文章
精彩文章
|