如何在网页上使用VBScript和JScript(6)

作者:winsky 来源:无忧脚本 时间:2008-05-05 19:53:00 

服务器脚本的执行顺序

内联服务器脚本按顺序运行,从头到尾。你可以在一个服务器脚本中定义一个可调用的程序(函数或者是子程序),这样的话,如果需要就可以随时调用它们。

所有的内联脚本必须用同一种语言来编写,也就是在网页前面的@指示中所指明的脚本语言。因此,在一个内联脚本中你不能把几种脚本语言混合起来。

你也许会说“等一等”。在理论上,把内联脚本放到<SCRIPT>单元中是绝对可能的——也就是说只要在单元中的脚本不是一个函数或者一个子程序就可以了。就像下例一样:

<% Response.Write("Some inline script<BR>")%>

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">

Response.Write("Script in a SCRIPT element<BR>")

</SCRIPT>

是的,你可以这么做。但是,这样你就会被IIS ASP处理程序的执行顺序控制。例如,如果你建立了服务器脚本并且在IIS 4.0中运行它,你会发现执行顺序是这样的:

l 采用非缺省语言的<SCRIPT>单元脚本

l 内联脚本

l 采用缺省语言的<SCRIPT>单元脚本

以上的顺序在很大程度上依赖于ActiveX语言引擎的载入顺序,同时IIS 中的ASP处理程序可能在将来会有所改变,因此,我们很不希望你按照这个顺序进行工作,不管你是只把<SCRIPT>单元用于函数或者子程序,还是把它仅仅用于执行顺序无关紧要的编码。

脚本块的顺序

当你把几种语言混合使用时,<SCRIPT>块在网页中出现的顺序非常重要,有时候会影响到它们是否能正常工作。看看下面这个简单的例子,它是在一个内联的VBScript脚本中调用一个用JScript编写的函数:

<SCRIPT LANGUAGE="VBScript">

' Calls a JScript function

aNumber = 2

doubledNumber = doubleMe(aNumber)

document.write("The answer is " & doubledNumber)

</SCRIPT> 

<SCRIPT LANGUAGE="JavaScript">

function doubleMe(aNumber){

return aNumber * 2;

}

</SCRIPT> 

它不会起任何作用。说得更明白一点就是,文档写入说明会往网页中写入一个空的字符串。为什么?很简单,在处理VBScript块时,下面的JScript <SCRIPT>块没有被读出来,没有进行语法分析,因此网页不能使用它。而当浏览器处理网页中的脚本块时,它是从上往下进行的。

在这个例子中,只需要调换一下脚本块的顺序就能够解决这个问题了。事实上,这类问题并不那么常见,在大多数情况下,<SCRIPT>中包含的函数和子程序只有当整个网页被全部下载下来并且所有的单元都可以使用之后才能够被调用。不过,你还是要记住,网页是按照一定的顺序来处理的,不同语言的<SCRIPT>块是分别处理的。

标签:VBScript,JScript之间,dhtml,脚本
0
投稿

猜你喜欢

  • jQuery 让人恋恋不舍的秘密

    2010-01-20 10:09:00
  • aspjpeg 添加水印教程及生成缩略图教程

    2011-04-04 11:04:00
  • python用tkinter实现一个简易能进行随机点名的界面

    2022-07-01 21:08:58
  • MySQL存储过程和函数的操作(十二)

    2024-01-26 03:45:26
  • Python3.9新特性详解

    2023-03-26 21:56:16
  • 表单相关特效整理

    2013-06-29 15:42:26
  • golang进程内存控制避免docker内oom

    2024-05-09 09:47:11
  • python实现LBP方法提取图像纹理特征实现分类的步骤

    2023-05-24 02:12:27
  • 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法

    2023-09-03 19:49:50
  • asp网站生成静态页面攻略

    2007-11-04 15:09:00
  • Python中关于使用模块的基础知识

    2022-11-10 04:11:21
  • ASP实现下载系统防盗链方法

    2008-02-01 14:05:00
  • JS实现为排序好的字符串找出重复行的方法

    2024-04-10 10:49:53
  • Go语言fsnotify接口实现监测文件修改

    2024-05-13 10:45:07
  • 在TABLE中模仿excel的单元格移动

    2007-12-22 12:03:00
  • python geopandas读取、创建shapefile文件的方法

    2022-09-23 16:57:19
  • 浅谈一下基于Pytorch的可视化工具

    2022-12-28 23:08:07
  • 登录与注册两者的距离

    2009-01-02 16:48:00
  • 解决python web项目意外关闭,但占用端口的问题

    2023-02-11 19:18:53
  • python爬取代理IP并进行有效的IP测试实现

    2021-05-08 15:31:38
  • asp之家 网络编程 m.aspxhome.com