《在asp中使用vbs》由会员分享,可在线阅读,更多相关《在asp中使用vbs(165页珍藏版)》请在金锄头文库上搜索。
1、第4章 在ASP中使用VBScript,本章要点: l Vbscript的常量、变量 l Vbscript的控制转移和循环 l Vbscript中的过程 l Vbscript的浏览器及Err对象 l VBScript事件处理和错误调试技术,4.1 脚本语言,4.1.1 什么是脚本语言 是介于HTML和Java、C+、Visual Basic之类的编程语言之间的语言。 主要用于格式化文本和使用以编程语言编写的已编译好的组件。 可以用在 服务器端,也可以用在客户端,用在服务器端时,需要安装脚本引擎。,常用的脚本语言: VBScript JavaScript Perl,ASP带有两个脚本引擎: Mi
2、crosoft Visual Basic Scripting Edition (VBScript)缺省语言是VBScript,当安装完Active Server Pages时,它就已存在了。 同时安装的还有Microsoft JScript。,4.1.2 VBScript和JScript之间的区别,VBScript是Visual Basic 的子集,因为VBScript是特意为在浏览器中进行工作而设计的,它不包括一些在脚本这个范围以外的特性,如文件访问和打印等等。 JScript是Java语言的子集,没有Java复杂。主要用于脚本编写的脚本语言。,JScript和VBScript的任务是相同的
3、都是用来编写Web网页的。每种语言都支持一些别的语言不支持的特性。 VBScript和JScript之间最大的区别就是它们的结构。,选择脚本类型时要考虑的因素: 选择脚本语言很多因素,比如:将要使用的平台能否支持所使用的语言?所编写的或要编写的是客户端应用还是服务器端应用?如果是服务器端的,用户会使用什么浏览器和服务器软件?,1什么时候选择VBScript BScript主要是用在微软公司的各种平台上。VBScript来可以应用在下面两种场景: 服务器脚本。运行在web服务器端(如在ASP网页中),这个服务器必须是IIS。 客户端脚本。运行在客户的浏览器中,这个浏览器必须是IE。,2什么时候选
4、择Jscript 所有的浏览器都支持JScript。因此,如果为一个公共Web站点编写一个应用程序,用JScript来编写客户端脚本是很自然的选择。 如果想用JScript 来编写服务器脚本,那么应该检查一下的服务器是否支持它。微软公司的IIS允许你用JScript 来编写ASP网页的脚本,但这并不是所有的服务器都支持的。,影响到你做决定的其它因素还有: 动态执行 面向对象,3区分大小写 JScript能够区分大写和小写。大小写敏感。 var A; var a;,VBScript当然是不区分大写和小写字母的。大小写不敏感。 var A; var a;,4.1.3 在同一个网页中同时使用几种语言
5、,在同一个网页中可以使用不同的脚本编写语言,其原因是: (1)只是想在一个程序中利用某种语言的优点,而脚本的其它部分还是用另外一种语言来编写。 (2)所面对的现有的编码是用不熟悉的语言来编写的。例如,设计时间控制是用JScript编写的,而熟悉的语言却是VBScript。,在大部分情况下,可以在同一个网页中混合几种脚本语言并且它们相互之间能够配合得很好。用一种语言编写的脚本可以调用用另一种语言编写的程序并且能够共享全局变量。,1服务器脚本的执行顺序 一般情况下内联服务器脚本(在分隔符中的脚本)按顺序运行,从头到尾。,2脚本块的顺序 在把几种语言混合使用时,块在网页中出现的顺序非常重要,有时候会
6、影响到它们是否能正常工作。看看下面这个简单的例子,它是在一个内联的VBScript脚本中调用一个用JScript编写的函数: 调用一个Jscript函数 aNumber =2 doubledNumber = doubleMe(aNumber),document.write(“答案:“ ,4.1.4 设置主脚本语言 ASP主脚本语言是用来处理在分界符 内部的命令的语言。默认时,主脚本语言是VBScript,当然可以将任何一种具有脚本引擎的脚本语言作为主脚本语言,也可以逐页设置主脚本语言,或在ASP应用程序中设置所有页的主脚本语言。,1为某页设置语言 要设置单个页的主脚本语言,可将指令添加到.as
7、p文件的开头。该指令的语法是: 其中Scripting Language就是所要设置的页的主脚本语言。如果对某页进行了设置,那么该页将忽略在应用程序中对所有页的全局设置。,2为应用程序设置语言 在应用程序中,如要为所有页设置主脚本语言,可在Internet服务管理器的“应用程序选项”选项卡上设置“默认的ASP语言”属性。 3在服务器上使用VBScript和JScript 在服务端通过ASP使用VBScript时,由于ASP脚本是在服务器端执行的,两个VBScript特征将失效,即表示用户接口的元素的VBScript语句InputBox和MsgBox将不被支持。另外,在服务器端的脚本中,请不要使
8、用VBScript函数,CreateObject和GetObject,而要使用Server.CreateObject,这样ASP就可以跟踪对象实例了。用CreateObject或GetObject创建的对象不能访问ASP内建对象,也不能参与事务处理。,4.2.1 VBScript 数据类型 VBScript只有一种数据类型,称为Variant。Variant是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。因为Variant是唯一的数据类型,所以它也是VBScript中所有函数的返回值的数据类型。,4.2 VBScript基础,表4-1 Variant子类型,可以使用转换函数来转
9、换数据的子类型, 用VarType函数返回数据的Variant子类型。,4.2.2 变量,1声明变量 在VBScript中声明一个变量可以使用Dim语句、Public语句和Private语句。 (1)Dim语句 Dim语句用来明确地声明变量。与Visual Basic不同的是,它无需指明变量的数据类型。因为VBScript中,只用一种数据类型。,格式: Dim 变量名称 例如: Dim DegreesFahrenheit 声明多个变量时,使用逗号分隔变量。例如: Dim Top, Bottom, Left, Right (2)Redim语句 Redim语句是专用来定义数组的。当需要根据数据的增
10、加和删除来扩大或缩小数组的大小时,可通过Redim语句来实现。,下面是一个扩大数组的简单格式: Dim datanum Redim Preserve datanum(20) Redim Preserve datanum(20)语句将数组的元素扩大到20。 默认的情况下,使用Redim语句的同时会清除数组中的所有值。而使用Preserve 关键字可以将所有现存的数据保存下来,并添加新的空白单元;,如果缩小了数组的大小,那么被减去的单元中的数据也会丢失。 3)Public关键字 Public关键字用于定义全局型变量。 格式: Public 变量名称 例如: Public a,b 和Dim语句一样,
11、Public可以声明变量,并可以一次声明多个变量,也可以声明一维或多维数组。所不同的是Public关键字定义的变量是全局变量。 (4)Private关键字,Private关键字可以定义变量、一次定义多个变量、定义一维或多维数组,不同的只是变量的作用范围不同。下面列出了使用上面语句或关键字定义的变量的可能作用范围: l Dim、 Redim :整个脚本程序或过程、函数中。 l Public:整个脚本程序。 l Private:过程或函数中。,(5)Option Explicit语句 虽然可以不声明变量而直接使用,但是,这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行脚本时出现意外
12、的结果。因此,最好使用Option Explicit语句显式声明所有变量,并将其作为脚本的第一条语句。 这样,如果以后拼写错变量名,VBScript就会提醒你这个变量没有声明,而避免出现由于拼写错误所造成的问题。,2命名规则 变量命名必须遵循VBScript的标准命名规则。变量命名必须遵循: l 第一个字符必须是字母。 l 不能包含嵌入的句点。 l 长度不能超过255个字符。 l 在被声明的作用域内必须唯一。,3变量的作用域及存活期 过程级变量:在过程中声明的变量。则只有该过程中的代码可以访问或更改变量值。具有过程级作用域 Sub Sub1() dim var1 var1=2008 var1=
13、var1+1 End Sub,脚本级变量:在过程之外声明的变量。则该变量可以被脚本中所有过程所识别,具有脚本级作用域。 dim var1 Sub Sub1() var1=2008 End Sub,4给变量赋值 给变量赋值很简单,创建如下形式的表达式给变量赋值:变量在表达式左边,要赋的值在表达式右边。例如: B = 200,5标量变量和数组变量 多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有括号()。下例
14、声明了一个包含11个元素的一维数组: Dim A(10),虽然括号中显示的数字是10,但由于在VBScript中所有数组都是基于0 的,所以这个数组实际上包含11个元素。在基于0的数组中,数组元素的数目总是括号中显示的数目加1。这种数组被称为固定大小的数组。 在数组中使用索引为数组的每个元素赋值。从0到10,将数据赋给数组的元素,如:,A(0) = 256 A(1) = 324 A(2) = 100 A(10) = 55 与此类似,使用索引可以检索到所需的数组元素的数据。如: SomeVariable = A(8) ,数组并不仅限于一维。数组的维数最大可以为60。声明多维数组时用逗号分隔括号中
15、每个表示数组大小的数字。在下例中,MyTable 变量是一个有6行和11列的二维数组: Dim MyTable(5, 10) 在二维数组中,括号中第一个数字表示行的数目,第二个数字表示列的数目。,Redim MyArray(25) Redim Preserve MyArray(30) 重新调整动态数组大小的次数是没有任何限制的。但是应注意:将数组的大小调小时,将会丢失被删除元素的数据。 4.2.3 常量 其值不能改变的量。,Const 常量名 = 初值 Const MyString = “这是一个字符串。“ Const MyAge = 49 请注意字符串文字包含在两个引号(“)之间,这是区分字
16、符串型常数和数值型常数的最明显的方法。日期文字和时间文字包含在两个#之间。例如: Const CutoffDate = #6-1-97#,在VBScript中已经定义了许多固有常量,可以直接引用。 1Empty常量 Empty常量表示一个为初始化的变量。如果定义了一个变量,没有对它赋值,那么这个变量就是Empty。,2Null常量 Null常量表示一个变量包含无效的数值。 注意,Empty和Null是不一样的: 当在一个表达式中使用值为Empty的变量时,如果它被用作数字,则它等于0;如果它被用作字符串,那么它就等于0长度字符串。 Null则不同,它表示变量中没有包含有效数据。,3Nothing常量 Nothing用于断开对象变量和任何实际对象之间的链接,使用SET语句可将一个对象变量设置为Nothing,如: Set 对象变量名Nothing 通过把一个对象变量赋值为Nothing,表明已经使用完了变量所链接的对象,可以释放该对象所占用的内存以