代码之家  ›  专栏  ›  技术社区  ›  Jerome WAGNER

经典ASP-include模式的有效性

  •  0
  • Jerome WAGNER  · 技术社区  · 15 年前

    以下是我在ASP中考虑的模式:

    假设你有一个文件 主.asp 包含

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

       ...my code...
    

    主.asp

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

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

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

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

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

    非常感谢你的帮助,

    杰罗姆·瓦格纳

    3 回复  |  直到 15 年前
        1
  •  2
  •   Edelcom    15 年前

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

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

        2
  •  0
  •   voodoo-burger    15 年前

    如果需要多次包含任何代码段,则应将其设置为Sub或函数。根据我的经验,SSIs用于存储那些sub和函数。因此,您可以在1.asp中创建一个子对象,然后在主.asp请执行以下操作:

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

    If Not defined_1_asp Then
      ...code here...
    End Sub
    
        3
  •  0
  •   bjorsig    15 年前

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

    推荐文章