我在网上找不到太多文档
到目前为止,明显的区别似乎是你不能使用“script”标签混合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
它说
In classic ASP the script written in the default script language for the page (i.e. the language assumed for the <% %> tags) is executed second – e.g. all the script code in <% %> tags is initialized after all the <SCRIPT RUNAT=SERVER …> scripts.
但我做了几个测试,无法验证它……
我问,因为我有一个脚本(我现在没有它),使用< %%>给了我一个错误,将其更改为< script>标签解决了问题,但我想知道为什么….
解决方法
首先,您需要了解服务器端脚本标记的处理方式有所不同,具体取决于指定的语言是否与页面的默认语言相同.
顺序是这样的: –
>在< script runat =“server”标记中运行所有脚本,其中指定的语言与默认语言不匹配.这些按文档顺序执行.>运行默认脚本.这意味着执行对响应的隐含写入,其中页面中存在静态内容(不在runat =“server”标记内或在< %%>内)以及< %%>中的任何中间代码再次按文件顺序显然.>在< script runat =“server”标记中找到的全局级别运行任何代码,其中语言与默认脚本语言匹配. 请注意,所有脚本在执行阶段1之前都有一个初始解析,因此可以在阶段3中运行的脚本定义的任何函数都可用于从阶段1调用.