什么是<%%>之间的区别 in classic asp?(what's the

2019-07-18 14:06发布

我无法在网络上找到多文档

到目前为止,现在,很明显的差异似乎是你不能使用混合的“脚本”标记的HTML和VBScript

例如,这是确定

<% public sub display_literal() %>
  literal
<% end sub %>

但与脚本标签,你应该


<script language="vbscript" runat="server">
public sub display_literal2()
    response.write "literal2</br>"
end sub
</script>

在本页面

http://www.newobjects.com/pages/ndl/alp/asp-structure.htm

它说,

在传统的ASP脚本写在了页面的默认脚本语言(即假定为<%%>标记语言)是第二个执行 - 例如,所有的脚本代码在<%%>标签的所有<SCRIPT RUNAT后初始化= SERVER ...>脚本。

但我做了一些测试,无法验证它...

我这么问是因为我有一个脚本(我没有手头有它现在),使用<%%>给了我一个错误,它改变到<script>标记解决了这个问题,但我想知道为什么....

反正,我想,我们应该使用的函数和程序的<script>标记从<%%>标签叫......吧?

Answer 1:

首先你要明白,有一个在服务器端方式的差异script根据指定的语言是否相同页面的默认语言的标签进行处理。

顺序是这样的: -

  1. 在运行所有脚本<script runat="server"标签,其中指定的语言不匹配的默认语言。 这些文件的顺序执行。
  2. 运行默认脚本。 这意味着执行其中存在的页面的静态内容(未在东西隐含写入响应runat="server"标签或内<% %>和任何中间代码) <% %>再次按文档顺序明显。
  3. 在发现全球范围内运行任何代码<script runat="server"这种语言默认脚本语言相匹配的标签。

请注意,所有脚本具有执行阶段1中,因此可以由脚本中定义的任何功能运行在阶段3将可用于从阶段1调用之前的初始解析。



Answer 2:

我刚刚在这个问题上的问题,并且,为了实用的目的,里面的代码<%%>标记之前的代码里面<SCRIPT RUNAT =“服务器”> </ SCRIPT> 执行

函数和过程的声明似乎并没有在IIS理解经典ASP标记的方式这种差异的影响-至少我不使用条件代码加载与“使用Server.Execute”。

我的服务器上运行的Microsoft-IIS / 5.1中Request.ServerVariables( “SERVER_SOFTWARE”)。



文章来源: what's the difference between <% %> and