Classic ASP中的Application.Contents和Application.StaticObjects有什么区别?

时间:2011-12-01 17:59:32

标签: asp-classic

Classic ASP中的Application object有两个集合:

  • Application.StaticObjects,填写<object>
  • 中的global.asa个部分
  • Application.Contents,由任何代码决定在那里存储内容,包括<script>
  • 中的global.asa个部分

我注意到StaticObjects集合的一个明显缺点:您无法初始化您存储的对象。我们以XML文档为例。您可以在那里存储一个自由线程的DOM对象,但是如果您想要预加载XML文件呢?我看不到实现这一目标的方法。

StaticObjects是否有利于弥补这一劣势?

更一般地说,这些集合在并发或访问等方面有何不同?


下面的讨论表明,使用<object>Application.StaticObjects实际上有一个优势,那就是懒惰评估。但是,当然,懒惰的评估是您可以在脚本中轻松编写自己(并且具有更大灵活性)的代码。但是,对于按需创建应用程序范围的单例,<object>标记可能很有用。

2 个答案:

答案 0 :(得分:1)

在Global.asa中使用<object>而不是在Contents事件中使用OnStart,我从未遇到任何需要或优势。

除了对象最终被实例化并放置在这些集合中之外,它们之间没有真正的区别。对象需要是自由线程和线程安全的。

我的建议是忽略StaticObjects并使用简单的代码。

答案 1 :(得分:0)

它们是两个不同的集合。优势/劣势的想法不适用。

申请内容集合:

Contents集合是通过脚本命令添加到应用程序的所有项目的组。

Application StaticObjects Collection:

StaticObjects集合包含使用Application对象范围内的标记创建的所有对象。