0

这是我在 ASP 中考虑的一种模式:

假设您有一个main.asp文件,其中包含

<!--#include file="1.asp"-->

1.asp的代码

   ...my code...

您认为将其重构为有效吗

主文件

Dim defined_1_asp = false
<!--#include file="1.asp"-->

1.asp

if (not defined_1_asp) then
    defined_1_asp = true
    ...my code...
end if

这样我就可以重构我所有的 SSI 包括,同时确保它们只执行一次。当然,include 的内容会被包含在内,但执行会受到 if 的保护。

我读到if语句在经典 ASP 中没有自己的范围,所以在我看来,代码的行为不会受到重构的影响。

如果相同的文件多次包含 SSI,我会遇到瓶颈吗?

非常感谢你的帮助,

杰罗姆·瓦格纳

4

3 回答 3

2

AFAIK 您不能多次包含代码(您将收到带有重复标识符的错误)。

我创建类,在需要时创建它们。

于 2010-08-27T13:16:01.983 回答
0

如果您需要多次包含任何一段代码,则应将其设为 Sub 或 Function。根据我的经验,SSI 用于存储这些 Subs 和 Functions。所以你可以做的是在 1.asp 中创建一个 Sub,然后在 main.asp 中执行以下操作:

<!--#include file="1.asp"-->

Dim defined_1_asp = false

Call MySub

与 Sub 类似

If Not defined_1_asp Then
  ...code here...
End Sub
于 2010-08-27T13:59:20.030 回答
0

SSI 包含在页面的任何呈现完成之前完成。这意味着 1.asp 被包含两次,给您带来变量声明和各种错误问题的问题。应该不惜一切代价避免这种情况。您可以做的(这是一种更好的设计和编程实践)是将 1.asp 中的代码放入 Sub 中,然后您可以在逻辑需要时调用该 sub。如果这是一个更复杂的问题,您可以为 1.asp 中的内容创建类或将其分解为许多子和函数。更清洁,更适合未来的维护。

于 2010-08-31T21:08:21.833 回答