VBScript混用与runat=server时脚本语言的执行优先级
第一点,ASP中JavaScript和VBScript的混用问题。
ASP中JavaScript和VBScript是可以混用的,下面的代码可以说明,在JavaScript中使用的变量可以通过VBScript赋值之后,得到改变。
第二点,原来在.Net之前,ASP中就已经有Runat=server这样的用法了。
对于<script language="javascript" runat=server> 或者 <script language="vbscript" runat=server> 或者仅仅是以<%%>包围起来的代码,执行的先后顺序是什么?实际上是:对于ASP文件的头部声明(<%language="XXX"%>)的脚本语言,以<%%>包围起来的代码的执行优先级高于Runat=server时的代码,但又低于头部声明的脚本语言以外的脚本语言。这句话有点拗口,怎么理解,来看下面的代码
上面的代码的执行结果是:
4 javascript runat=server
10 javascript runat=server
6 perl runat=server
14 perl runat=server
1 HTML
3 HTML
5 HTML
7 HTML
8 inline script
9 HTML
11 HTML
13 HTML
2 vbscript runat=server
12 vbscript runat=server
可以看到一开始声明 <%@language="vbscript"%>,那么vbscript runat=server部分的代码是在最后执行的,比
还要慢,那么是不是只要是vbscript runat=server,那么执行优先级就最低?再来看下面的代码:
这次的结果是:
2 vbscript runat=server
12 vbscript runat=server
6 perl runat=server
14 perl runat=server
1 HTML
3 HTML
5 HTML
7 HTML
8 inline script
9 HTML
11 HTML
13 HTML
4 javascript runat=server
10 javascript runat=server
这次最慢的的是javascript runat=server,所以可以证明上面的结论是正确的。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2168799
ASP中JavaScript和VBScript是可以混用的,下面的代码可以说明,在JavaScript中使用的变量可以通过VBScript赋值之后,得到改变。
+展开
-HTML
<html>
<head>
<title>Page1</title>
<script language="JavaScript">
alert("JavaScript");
var a="JavaScript";
alert(a);
</script>
<script language="vbscript">
a="vbscript"
alert("vbscript")
alert(a)
</script>
<script language="JavaScript">
alert(a);
</script>
</head>
<body>
</body>
</html>
<head>
<title>Page1</title>
<script language="JavaScript">
alert("JavaScript");
var a="JavaScript";
alert(a);
</script>
<script language="vbscript">
a="vbscript"
alert("vbscript")
alert(a)
</script>
<script language="JavaScript">
alert(a);
</script>
</head>
<body>
</body>
</html>
第二点,原来在.Net之前,ASP中就已经有Runat=server这样的用法了。
对于<script language="javascript" runat=server> 或者 <script language="vbscript" runat=server> 或者仅仅是以<%%>包围起来的代码,执行的先后顺序是什么?实际上是:对于ASP文件的头部声明(<%language="XXX"%>)的脚本语言,以<%%>包围起来的代码的执行优先级高于Runat=server时的代码,但又低于头部声明的脚本语言以外的脚本语言。这句话有点拗口,怎么理解,来看下面的代码
+展开
-HTML
<%@language="vbscript"%>
<HTML><BODY>
1 HTML<br>
<script language="VBscript" runat=server>...
response.write("2 vbscript runat=server<br/>")
</script>
3 HTML<br>
<script language="javascript" runat=server>...
Response.Write("4 javascript runat=server<br/>");
</script>
5 HTML<br>
<script language="perlscript" runat="server">...
$Response->Write("6 perl runat=server<br/>");
</script>
7 HTML<br>
<%...
Response.write("8 inline script<br/>")
%>
9 HTML<br>
<script language="javascript" runat=server>...
Response.Write("10 javascript runat=server<br/>");
</script>
11 HTML<br>
<script language="VBscript" runat=server>...
response.write("12 vbscript runat=server<br/>")
</script>
13 HTML<br>
<script language="perlscript" runat="server">...
$Response->Write("14 perl runat=server<br/>");
</script>
</BODY></HTML>
<HTML><BODY>
1 HTML<br>
<script language="VBscript" runat=server>...
response.write("2 vbscript runat=server<br/>")
</script>
3 HTML<br>
<script language="javascript" runat=server>...
Response.Write("4 javascript runat=server<br/>");
</script>
5 HTML<br>
<script language="perlscript" runat="server">...
$Response->Write("6 perl runat=server<br/>");
</script>
7 HTML<br>
<%...
Response.write("8 inline script<br/>")
%>
9 HTML<br>
<script language="javascript" runat=server>...
Response.Write("10 javascript runat=server<br/>");
</script>
11 HTML<br>
<script language="VBscript" runat=server>...
response.write("12 vbscript runat=server<br/>")
</script>
13 HTML<br>
<script language="perlscript" runat="server">...
$Response->Write("14 perl runat=server<br/>");
</script>
</BODY></HTML>
上面的代码的执行结果是:
4 javascript runat=server
10 javascript runat=server
6 perl runat=server
14 perl runat=server
1 HTML
3 HTML
5 HTML
7 HTML
8 inline script
9 HTML
11 HTML
13 HTML
2 vbscript runat=server
12 vbscript runat=server
可以看到一开始声明 <%@language="vbscript"%>,那么vbscript runat=server部分的代码是在最后执行的,比
+展开
-HTML
<%
Response.write("8 inline script<br/>")
%>
Response.write("8 inline script<br/>")
%>
还要慢,那么是不是只要是vbscript runat=server,那么执行优先级就最低?再来看下面的代码:
+展开
-HTML
<%@language="JavaScript"%>
<HTML><BODY>
1 HTML<br>
<script language="VBscript" runat=server>...
response.write("2 vbscript runat=server<br/>")
</script>
3 HTML<br>
<script language="javascript" runat=server>...
Response.Write("4 javascript runat=server<br/>");
</script>
5 HTML<br>
<script language="perlscript" runat="server">...
$Response->Write("6 perl runat=server<br/>");
</script>
7 HTML<br>
<%...
Response.write("8 inline script<br/>");
%>
9 HTML<br>
<script language="javascript" runat=server>...
Response.Write("10 javascript runat=server<br/>");
</script>
11 HTML<br>
<script language="VBscript" runat=server>...
response.write("12 vbscript runat=server<br/>")
</script>
13 HTML<br>
<script language="perlscript" runat="server">...
$Response->Write("14 perl runat=server<br/>");
</script>
</BODY></HTML>
<HTML><BODY>
1 HTML<br>
<script language="VBscript" runat=server>...
response.write("2 vbscript runat=server<br/>")
</script>
3 HTML<br>
<script language="javascript" runat=server>...
Response.Write("4 javascript runat=server<br/>");
</script>
5 HTML<br>
<script language="perlscript" runat="server">...
$Response->Write("6 perl runat=server<br/>");
</script>
7 HTML<br>
<%...
Response.write("8 inline script<br/>");
%>
9 HTML<br>
<script language="javascript" runat=server>...
Response.Write("10 javascript runat=server<br/>");
</script>
11 HTML<br>
<script language="VBscript" runat=server>...
response.write("12 vbscript runat=server<br/>")
</script>
13 HTML<br>
<script language="perlscript" runat="server">...
$Response->Write("14 perl runat=server<br/>");
</script>
</BODY></HTML>
这次的结果是:
2 vbscript runat=server
12 vbscript runat=server
6 perl runat=server
14 perl runat=server
1 HTML
3 HTML
5 HTML
7 HTML
8 inline script
9 HTML
11 HTML
13 HTML
4 javascript runat=server
10 javascript runat=server
这次最慢的的是javascript runat=server,所以可以证明上面的结论是正确的。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2168799
加支付宝好友偷能量挖...