ASP中JavaScript和VBScript混用与runat=server时脚本语言的执行优先级

 

最近接触了一点ASP,虽然技术有点过时,但是我还是第一次使用,有必要总结一下最近碰到的一些问题。

第一点,ASP中JavaScript和VBScript的混用问题。ASP中JavaScript和VBScript是可以混用的,下面的代码可以说明,在JavaScript中使用的变量可以通过VBScript赋值之后,得到改变。

< 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时的代码,但又低于头部声明的脚本语言以外的脚本语言。这句话有点拗口,怎么理解,来看下面的代码

<% @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 >

上面的代码的执行结果是:

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部分的代码是在最后执行的,比

< %
    Response.write(
" 8 inline script<br/> " )
%
>

还要慢,那么是不是只要是vbscript runat=server,那么执行优先级就最低?再来看下面的代码:

<% @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 >

这次的结果是:

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,所以可以证明上面的结论是正确的。

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loadsave

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值