Classic ASP中的Application
object有两个集合:
Application.StaticObjects
,填写<object>
global.asa
个部分
Application.Contents
,由任何代码决定在那里存储内容,包括<script>
global.asa
个部分
我注意到StaticObjects
集合的一个明显缺点:您无法初始化您存储的对象。我们以XML文档为例。您可以在那里存储一个自由线程的DOM对象,但是如果您想要预加载XML文件呢?我看不到实现这一目标的方法。
StaticObjects
是否有利于弥补这一劣势?
更一般地说,这些集合在并发或访问等方面有何不同?
下面的讨论表明,使用<object>
和Application.StaticObjects
实际上有一个优势,那就是懒惰评估。但是,当然,懒惰的评估是您可以在脚本中轻松编写自己(并且具有更大灵活性)的代码。但是,对于按需创建应用程序范围的单例,<object>
标记可能很有用。
答案 0 :(得分:1)
在Global.asa中使用<object>
而不是在Contents
事件中使用OnStart
,我从未遇到任何需要或优势。
除了对象最终被实例化并放置在这些集合中之外,它们之间没有真正的区别。对象需要是自由线程和线程安全的。
我的建议是忽略StaticObjects
并使用简单的代码。
答案 1 :(得分:0)
它们是两个不同的集合。优势/劣势的想法不适用。
申请内容集合:
Contents集合是通过脚本命令添加到应用程序的所有项目的组。
Application StaticObjects Collection:
StaticObjects集合包含使用Application对象范围内的标记创建的所有对象。