在渲染文档的结果之前设置一个变量值

Set a variable value before the result of the rendered document

我觉得不可能,不过想问一下,经典ASP有没有办法在调用后设置变量值? 一个更清楚的例子:

<img src="<%=imgSrc%>" alt="An image" />
<% imgSrc="animage.jpg" %>

或另一个但只是为了解释:

<img src="<%=imgSrc%>" alt="An image" />
<% ASP BEFORE RENDER
   imgSrc="animage.jpg"
%>

任何提示都会很好;)

我认为没有办法做到这一点。然而,这是一个非常糟糕的做法。你应该总是在顶部声明你的变量并在你使用之前给它们赋值。

ASP 引擎以线性方式处理 ASP 文件。

在上面的例子中

<img src="<%=imgSrc%>" alt="An Image" />` 

已经写入缓冲区,因此之后发生的任何事情都不会影响该行的结果。

唯一的例外是 Sub Procedure (尽管 Sub Procedure 中定义的值不一定 returned 到正在处理的行) 和函数调用可以是定义在任何地方(顶部底部等),它们的内容将在行写入缓冲区之前被处理,所以像

<img src="<%= GetImage(...) %>" alt="An Image" />` 

会起作用。

要对此进行扩展,您应该使用 Function 来保证该值包含在正在处理的行中 Sub 不能这样做,因为它没有 return 任何东西(从技术上讲,您可以使用 ByRef 来自 Sub 的 return 值,但即使这样也不适用于这种情况,因为必须先调用 Sub在可以访问 ByRef 值之前).

使用上面的 GetImage() 示例

'This function in this form isn't useful at all but it
'demonstrates the technique.
Function GetImage()
  Dim imgSrc : imgSrc = "animage.jpg"
  GetImage = imgSrc
End Function