如何在网页上使用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>块是分别处理的。


猜你喜欢
- 1 打开cmd,不改变运行的目录:输入python 空格 调试好的python文件路径或者python 空格 将py
- 1、使用while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100的和#方法一#从2开始计算i = 2#定义一个变量用于保
- PyQt5信号与槽高级自定义信号与槽所谓高级自定义信号与槽,指的就是我们可以以自己喜欢的方式定义信号与槽函数,并传递参数,自定义信号的一般流
- 注:本文只讨论技术不涉及商业,如有侵权请告知,未经本人同意转载后果自负!本文是通过浏览器端ajax,node端request-json进行爬
- 本文实例讲述了Python打包文件夹的方法。分享给大家供大家参考,具体如下:一、zipimport os, zipfile#打包目录为zip
- 一般来说,造成MySQL出现中文乱码的因素主要有下列几点:1.server本身字符集设定的问题,例如还停留在latin12.table的语系
- 前言最近这两天在看自己之前写的代码,所以正好把用过的东西整理一下,单例模式,在日常的代码工作中也是经常被用到,所以这里把之前用过的不同方式实
- 总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块。python没有二进制类型,但可以存储二进
- 在js中一切都是对象,连函数也是对象,函数名其实是引用函数定义对象的变量。1、什么是arguments?这个函数体内的arguments非常
- 1、 设置WriteHeader的顺序问题之前遇到个问题,在一段代码中这样设置WriteHeader,最后在header中取Name时怎么也
- 秉承着一切皆对象的理念,我们再次回头来看函数(function)。函数也是一个对象,具有属性(可以使用dir()查询)。作为对象,它还可以赋
- 上篇文章分享了windows下载mysql5.7压缩包配置安装mysql后续可以选择①在本地创建一个数据库,使用navicat工具导出远程测
- 本文实例为大家分享了python实现教务管理系统,供大家参考,具体内容如下mysql+python构成教务管理系统,提供系统管理员,教职工,
- 这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 13个机器学习的框架偏向于Python的原因,供大家参考,具体内容如下前言主要有以下原因:1. Python是解释语言,程序写起来非常方便写
- 在防止sql注入这些细节出现问题的一般是那些大意的程序员或者是新手程序员,他们由于没有对用户提交过来的数据进行一些必要的过滤,从而导致了给大
- innewDropList = [9,10,11,12,22,50,51,60,61]newDB = newDB[newDB['gr
- sql中的 IF 条件语句的用法IF 表达式IF( expr1 , expr2 , expr3 )expr1 的值为 TRUE,则返回值为
- 当服务端对http的body进行解析到map[string]interface{}时,会出现cli传递的是int类型,而服务端只能断言成fl
- 一、batch与shell中目录及文件:C:\TESTFOLDER\TEST├─Test2└─Test3