在(经典)ASP中,当使用包含文件时,但由于它们属于IF语句而有效冗余 - 这些冗余包含文件如何影响性能?
例如
<%
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内容。
答案 0 :(得分:3)
<!--#include file="page.asp"-->
在ASP中的工作方式是,它有效地将该文件的内容拉入一个代码块,然后在执行之前对其进行编译。包含中的代码应该只影响编译性能而不是执行性能。
尽管如果您的应用程序结构如此,我会认真考虑重新处理它,虽然这可能不适合您。
答案 1 :(得分:2)
考虑使用WSC。它们的行为类似于COM组件,但可以用vbscript编写。您可以为它们提供属性和方法。它们也可以有条件地包含在内,并不总是加载,与INC文件不同:
http://aspalliance.com/414_Windows_Scripting_Components_WSC_in_ASP
还有一个提示:您不必像文章所说的那样(重新)注册WSC,您可以调用/包含WSC文件而不必像以下那样注册它:
GetObject的( “脚本:” &安培;使用Server.Mappath( “/路径/到/ component.wsc”))
HTH,
埃里克
答案 2 :(得分:1)
在代码之前处理#include
;所以在包含时不会执行if
/ else
逻辑。在您的代码中,无论条件如何,都将包含PageX.asp和PageY.asp。
有关详情,请查看this。