2

このページを ASP クラシックで作成したい:

<%
Dim depart

depart = 1556


Select Case depart
    Case 1
    %>
    <!--#include virtual="/check/noam/newDesign/test1.asp"-->
    <%
    Case 2
    %>
    <!--#include virtual="/check/noam/newDesign/test2.asp"-->
    <%
    Case 3
    %>
    <!--#include virtual="/check/noam/newDesign/test3.asp"-->
    <%
    Case 4
    %>
    <!--#include virtual="/check/noam/newDesign/test4.asp"-->
    <%
    Case 5
    %>
    <!--#include virtual="/check/noam/newDesign/test5.asp"-->
    <%
    Case 6
    %>
    <!--#include virtual="/check/noam/newDesign/test6.asp"-->
    <%
    Case 7
    %>
    <!--#include virtual="/check/noam/newDesign/test7.asp"-->
    <%
    Case 8
    %>
    <!--#include virtual="/check/noam/newDesign/test8.asp"-->
    <%
End If
%>

そして、バックグラウンドのサーバーがすべてのインクルードに入る必要があるのか​​ 、それとも適切な場合にのみインクルードに入る必要があるのか​​ を知りたいですか? サーバーがこれでパフォーマンスが低下するかどうかを知りたいので、それを知る必要があります。

4

3 に答える 3

2

インクルードの内容に大きく依存しますが、そのような構造がパフォーマンスに目に見える影響を与えるとは思われません.

コードが実行される前にすべてのインクルードが最初にスクリプトに構成されるのは事実ですが、最終的なスクリプトの構成および解析された "p-code" バージョンが ASP によってキャッシュされることも覚えておく必要があります。

インクルードが主に静的な HTML コンテンツである場合、このアプローチは実際には非常に効率的です。一方、インライン グローバル識別子 ( SubFunctionまたはで囲まれていない識別子Class) が多いほど、これらの識別子をスクリプト コンテキストに登録するのに必要な時間が長くなります (ただし、顕著な違いを生むには、依然として多くの識別子が必要です)。

潜在的な代替手段はServer.Execute、インクルードの代わりに使用することです。この場合、実行される ASP は独自の独立したスクリプト コンテキストを持っているため、呼び出し元の関数と変数を共有できません (これは良いことかもしれませんし、そうでないこともあります) Server.Execute

于 2012-07-10T12:27:55.863 に答える
1

インクルードは従来の ASP で実行される前に読み込まれるため、実行されなくても、基本的にこれらのインクルードはすべて読み込まれます。

別のパターンを使用できます: Execute Global。これは、VB で eval() を使用するのと同じです。ファイルを文字列として読み込み、それを実行します。これはインクルードのクラスターを回避しますが、それ自体はかなり醜いです。

于 2012-07-10T11:34:29.567 に答える