4

によると

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 を使用しても問題ありませんか ???

どうもありがとう...

4

3 に答える 3

9

あなたが引用している記事は、やや古くなっています。IIS 5 および Windows 2000 以降の COM+ では、ストレートを使用することは を使用するCreateObjectこととほとんど同じServer.CreateObjectです。

CreateObjectまたはの MTS/COM+ の動作はServer.CreateObject同じになりました。これは、ASP 自体が COM+ アプリケーションとして実行されるためです。ASP ページがトランザクションを開始し、CreateObjectIObjectContext を実装する任意のオブジェクトを使用して、トランザクションへの参加を招待するように指定できます。

私が知っている唯一の本当の違いは、作成される COM オブジェクトが OnStartPage と OnEndPage メソッドを持つ可能性がある従来のものです。これらのメソッドの使用Server.CreateObjectは、オブジェクトの作成時とオブジェクトが解放される直前に呼び出されます。では起こりませんCreateObject

于 2009-09-30T12:01:15.027 に答える
2

要するに、はい、大丈夫です。前回の記事全体を読んだ場合、Ryna S が言うように:

「この違いと、いつこの 2 つを使用するかを理解していただければ幸いです。」

あなたが説明した状況は、Server.CreateObjectではなくCreateObjectを使用するだけでよいでしょう。

サーバーから最後の1オンスをすべて絞り出そうとしない限り、それほど大きな違いはありません. どちらにしても十分に速いはずです。

于 2009-09-29T17:35:30.627 に答える
-2

createobject を使用する利点は、プレーンな cscript.exe を使用するときにライブラリをテストまたは再利用できることです。<% %> タグを削除するだけです。

于 2009-10-01T06:42:44.663 に答える