当前位置:编程学习 > asp >>

asp将常用数据复制到脚本变量

答案: 在 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 编程同样有效。

上一个:在COM对象中封装代码
下一个:利用浏览器的验证能力

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,