在ASP经典的Server.CreateObject和CreateObject之间的区别(diffe

2019-08-17 00:36发布

根据

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

你应该使用的Server.CreateObject

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

但一些其他人认为的Server.CreateObject意味着可避免大部分时间开销

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

创建对象比的Server.CreateObject开销少,因为后者使用MTS - 造成显著的开销。

您也将有性能命中当组件遇到错误,因为用的Server.CreateObject,这些错误被写入到事件日志(其中,诚然,可以在调试过程中非常有用)。

要么

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

如果你正在编写与交易涉及的组件这可以成为显著,因为这将是一个很好的安全网,通过MTS通过它,因为你将使用MTS的命令。 但是,如果你不使用MTS,你可以将其通过的Server.CreateObject创建的处理器和内存在头上。 这使得一个更好的主意,使用CreateObject,因为它会直接通过。

所以,如果我不使用MTS和需要将内建ASP的对象没有访问(如设定d =的CreateObject(“的Scripting.Dictionary”))是确定忘掉了的Server.CreateObject和CreateObject来走)???

非常感谢...

Answer 1:

你引用这些文章是有点乱日期。 由于IIS 5和COM +在Windows 2000及以上采用了直板CreateObject几乎是一样使用Server.CreateObject

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

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



Answer 2:

总之,是它的罚款。 就像如果你读了整个文章的最后的Ryna小号说:

“希望你现在理解上的差异,以及何时使用两个。”

您所描述的情况将是一个很好的时间才刚刚使用CreateObject而不是的Server.CreateObject。

Unltimately除非你真的尝试每一个最后盎司挤出的服务器是不会做出太大的差别。 应该是足够快足够两种方式。



Answer 3:

使用CREATEOBJECT的优点是,一个既可以测试,或使用普通的Cscript.exe时重用libaries。 刚刚剥离<%%>标记。



文章来源: difference between server.createObject and createobject in asp classic