2012-01-19 65 views
1

在傳統的ASP中,當使用包含文件時,由於它們屬於IF語句而實際上是冗餘的 - 這些冗餘包含文件如何影響性能?有條件的包含文件會影響ASP性能嗎?

例如

<% 
If Condition(1) or GlobalCondition Then %><!--#INCLUDE FILE="PageX.asp" --><% End If 
If Condition(2) or GlobalCondition Then %><!--#INCLUDE FILE="PageY.asp" --><% End If 
%> 

可以有幾十個未使用的包含文件。一些包含文件只是函數庫,但許多文件主要是HTML內容和簡單的服務器端代碼。

+1

包含已經添加到頁面,然後條件跳過/跳過解釋代碼。在實際中,實際的性能命中是微不足道的。 – Jason

回答

3

那麼<!--#include file="page.asp"-->在ASP中的工作方式是,它有效地將該文件的內容拉到一塊代碼中,然後在執行它之前進行編譯。你包含的代碼只會影響編譯性能,而不會影響執行性能。

儘管如果你的應用程序是這樣構建的,我會認真考慮對它進行一些修改,儘管這可能不適合你。

+0

你已經有了正確的流程,除了傳統的ASP沒有被編譯。它是腳本/運行時。除此之外,你是正確的,首先添加包含,然後在運行時測試條件。 – Jason

2

考慮使用WSC。它們的行爲與COM組件類似,但可以用vbscript編寫。你可以給他們屬性和方法。它們也可以有條件地納入,而不是總是加載,不像INC文件:

http://aspalliance.com/414_Windows_Scripting_Components_WSC_in_ASP

一個提示:你沒有(重新)之類的文章說,註冊WSC,你可以呼叫/包括WSC文件不註冊它像這樣:

GetObject的( 「腳本:」 &使用Server.Mappath( 「/路徑/到/ component.wsc」))

HTH,

埃裏克

1

#include在代碼之前被處理;所以沒有if/else邏輯將在包含時間執行。在您的代碼中,無論條件如何,PageX.asp和PageY.asp都將包含在內。

欲瞭解更多信息,你可以檢查this

相關問題