我看到为什么有些在服务器端运行language=vbscript byte,2007-10-22 11:45:43<script language=vbscript runat=server> '这里是代码,如: response.write "88888888<br>" </script> 我看到为什么有的ASP文件中要这样写呢,为什么不直接用下面的更方便吗? <% '这里是代码,如: response.write "88888888<br>" %> 请教这二者有什么区别吗?
Xinsoft,2007-10-22 11:50:001、<% ... %> 这种写法相当于 <script runat=server> ... </script> 2、<% ... %> 支持的语言是VBScript还是JScript,取决于 IIS 的默认脚本语言设置。通常这个设置的默认值是VBScript。 3、无论是<% ... %> 这种写法,还是 <script runat=server ...> ... </script> 都可以指定使用何种语言。
byte,2007-10-22 18:04:28按照你的意思,那是写法不同,但功能是一样的,但是下面的语句: 复制代码
- <script language="vbscript" runat="server">
- response.write "1"
- </script>
- <%response.write "2"%>
ByVal,2007-10-22 18:22:56因为在最终编译阶段,script标签的优先级最低,当所有流程处理完毕,已经准备好回发流时才处理它,如果你要在它的范围内使用response.write向回发流增加数据,必定会排在最后,因为回发流已经建立
风Na,2007-10-22 19:16:43呵呵,如果你用下面这段代码呢?
- <script language="Jscript" runat="server">
- response.write("1");
- </script>
- <%response.write "2"%>
风Na,2007-10-22 19:18:05服务器脚本的执行顺序是 采用非缺省语言的<SCRIPT>单元脚本 内联脚本 采用缺省语言的<SCRIPT>单元脚本 摘自
ByVal,2007-10-22 19:18:28这就是解释引擎间的差别体现了
ByVal,2007-10-22 19:19:39以上的顺序在很大程度上依赖于ActiveX语言引擎的载入顺序,同时IIS中的ASP处理程序可能在将来会有所改变,因此,我们很不希望你按照这个顺序进行工作,不管你是只把<SCRIPT>单元用于函数或者子程序,还是把它仅仅用于执行顺序无关紧要的编码。
风Na,2007-10-22 19:23:18呵呵,还是.Net处理<% %>和<script>比较科学。。。
ByVal,2007-10-22 19:35:42一个是解释的,一个是编译的.区别就在这里了
daniel_daniel,2007-10-23 10:19:37长学问了。好贴,好人,好问题
測試代碼如下: <%=4%><%Response.Write(5)%><script language="jscript" runat="server">Response.Write(1)</script><script language="vbscript" runat="server">Response.Write(2)</script><script language="jscript" runat="server">Response.Write(3)</script>
當在前面用<% @LANGUAGE="VBSCRIPT" %>或不用的時候,就是讓面用默認script為vbscript,輸出順序為13452 當在前面用<% @LANGUAGE="JSCRIPT" %>的時候,就是讓面用默認script為Jscript,輸出順序為24513 總結 - asp在運行時候對tag的處理順序: 1.先執行非默認script的script tag內語句(@language="vbscript"時,先執行<script langauge=javascript runat=server,反之亦然) 2.再執行percent tag內語句 3.最後執行使用默認script的script tag內語句(@language="vbscript"時,執行<script langauge=vbscript runat=server,反之亦然) =直接輸出不影響順序 微軟的產品怪怪的啊~歡迎交流