【问题标题】:difference between server.createObject and createobject in asp classicasp经典中server.createObject和createobject的区别
【发布时间】:2010-12-02 09:28:40
【问题描述】:

根据

http://msdn.microsoft.com/en-us/library/ms524620.aspx

你应该使用 server.createObject

如果您已经熟悉 VBScript 或 JScript,请注意不要使用脚本语言的函数来创建新的对象实例(VBScript 中的 CreateObject 或 JScript 中的 New)。您必须使用 ASP Server.CreateObject 方法;否则,ASP 无法跟踪您在脚本中对该对象的使用。

但其他一些人认为 server.createObject 意味着大多数时候可以避免的开销

http://classicasp.aspfaq.com/components/should-i-use-createobject-or-server-createobject.html

CreateObject 的开销比 Server.CreateObject 少,因为后者使用 MTS — 导致显着的开销。

当组件遇到错误时,您也会遭受性能损失,因为使用 Server.CreateObject,这些错误会写入事件日志(诚然,这在调试期间很有用)。

http://www.4guysfromrolla.com/webtech/043099-1.shtml

如果您正在编写一个处理事务的组件,这可能会变得很重要,因为通过 MTS 传递它是一个很好的安全网,因为您将使用 MTS 命令。但是,如果您不使用 MTS,您可以通过 Server.CreateObject 传递来创建处理器和内存。这使得使用 CreateObject 成为一个更好的主意,因为它直接通过。

所以,如果我不使用 mts 并且不需要访问内置 asp 的对象(如 set d = createObject("scripting.dictionary") ),是否可以忘记 server.createObject 并使用 createobject ) ???

非常感谢...

【问题讨论】:

    标签: com asp-classic instantiation createobject


    【解决方案1】:

    您引用的那些文章有些过时了。由于 IIS 5 和 COM+ 在 Windows 2000 及更高版本上使用直接CreateObject 与使用Server.CreateObject 几乎相同。

    CreateObjectServer.CreateObject 的 MTS/COM+ 行为现在相同,部分原因是 ASP 本身作为 COM+ 应用程序运行。您可以指定 ASP 页面启动一个事务,然后使用 CreateObject 任何实现 IObjectContext 的对象将被邀请加入事务等。

    我知道的唯一真正的区别是一个遗留的东西,一个正在创建的 COM 对象可能有 OnStartPage 和一个 OnEndPage 方法。使用Server.CreateObject 这些方法在对象被创建时和对象被释放之前被调用。 CreateObject 不会发生这种情况。

    【讨论】:

    • Anthony,你是一个 ASP 知识的宝库,你从哪里得到这些东西?像往常一样令人印象深刻:)
    • 有趣;我不知道这个。您是否推荐任何参考资料来支持此描述并了解更多背景信息?我从未见过有关此主题的任何“当前”信息。
    【解决方案2】:

    简而言之,是的,没问题。正如 Ryna S 所说,如果您阅读了上一篇文章的全文:

    “希望您现在了解区别,以及何时使用两者。”

    您所描述的情况是只使用 CreateObject 而不是 Server.CreateObject 的好时机。

    除非您真的试图从服务器中挤出最后一盎司,否则它最终不会有太大的不同。无论哪种方式都应该足够快。

    【讨论】:

      【解决方案3】:

      使用 createobject 的优势在于,在使用普通 cscript.exe 时,可以测试或重用库。只需去掉 标签。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-06
        • 1970-01-01
        • 2022-07-01
        • 1970-01-01
        • 2016-02-21
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多