Com asp classic中server.createObject和createObject之间的差异

Com asp classic中server.createObject和createObject之间的差异,com,asp-classic,instantiation,createobject,Com,Asp Classic,Instantiation,Createobject,据 您应该使用server.createObject 如果您已经熟悉VBScript或JScript,请注意,您不使用脚本语言的函数来创建新的对象实例(VBScript中的CreateObject或JScript中的new)。必须使用ASP Server.CreateObject方法;否则,ASP无法跟踪脚本中对象的使用情况 但是其他一些人认为server.createObject意味着一种开销,这种开销在大多数情况下是可以避免的 CreateObject的开销比Server.CreateO

您应该使用server.createObject

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

但是其他一些人认为server.createObject意味着一种开销,这种开销在大多数情况下是可以避免的

CreateObject的开销比Server.CreateObject小,因为后者使用MTS,导致了大量开销

当组件遇到错误时,您也会受到性能影响,因为对于Server.CreateObject,这些错误会写入事件日志(无可否认,在调试过程中可能会很有用)

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

因此,如果我不使用mts,并且不需要访问内置asp的对象(如set d=createObject(“scripting.dictionary”)),那么就可以忘记server.createObject而使用createObject吗


非常感谢……

简言之,是的,很好。正如Ryna S所说,如果你阅读了上一篇文章的全部内容:

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

您描述的情况将是一个很好的时机,只需使用CreateObject而不是Server.CreateObject


不幸的是,除非你真的想挤出服务器的每一分每一秒,否则它不会有太大的区别。无论如何都应该足够快。

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

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


我所知道的唯一真正的区别是一个遗留问题,即正在创建的COM对象可能具有OnStartPage和OnEndPage方法。使用
Server.CreateObject
在创建对象时以及在释放对象之前调用这些方法。使用CreateObject的好处是,在使用纯cscript.exe时,可以测试或重用库。只需去掉标签。

Anthony您是一个ASP知识库,您从哪里获取这些信息?像往常一样令人印象深刻:)有趣;我不知道这件事。您是否推荐任何参考资料来支持此描述和了解更多背景信息?我从未见过关于这个问题的任何“最新”信息。