网络编程 
首页 > 网络编程 > 浏览文章

ASP基础入门第三篇(ASP脚本基础)

(编辑:jimmy 日期: 2024/11/14 浏览:3 次 )

下面就先请大家跟我来学习一些ASP 中应用脚本语言(以VBScript 为主)的基础知识。

  在开始学习脚本语言之前,你应该理解一些简单的概念 -- 变量、进程。所谓变量是计算机内存中已命名的存储位置,其中包含了数字或字符串等数据,它使用户便于理解脚本操作的名称,为用户提供了一种存储、检索和操作数据的途径。程序是由一个或多个进程组成的,在 VBScript 中,进程就是“指令块”,通常意义上的进程,如 Sub,只是为了简单的数据处理。
  在 VBScript 中,严格的来讲变量是不用声明的,

  如: 

< % Mystring="This is my string" % > 

  然而,即使在使用变量前不需要去声明变量,也应养成在编程时声明变量的良好习惯,因为这样有助于防止错误发生。声明一个变量意味着告诉脚本引擎,有一个特定名称的变量,这样就可以在脚本中引用该变量。在 VBScript 中声明一个变量可以使用“Dim”语句,如下: 

< script language="VBScript" > 
   < !-- 
   Option Explicit ' 要求在脚本中声明所有的变量 
   Dim Mystring 
   Mystring="This is my string" 
   -- > 
   < /script>

  变量的作用域即生命期,决定哪些脚本命令可访问变量。在过程内部声明的变量具有局部作用域。每执行一次过程,变量就被创建然后消亡。而过程外部的任何命令都不能访问它。在过程外部声明的变量具有全局作用域,其值能被 ASP 页上的任何脚本命令访问和修改。声明变量时,局部变量和全局变量可以有相同的名称。而改变其中一个的值并不会改变另一个的值。如果没有声明变量,则可能不小心会改变一个全局变量的值。例如,以下脚本命令返回值 1,虽然有两个名为 Y 变量: 

< % 
   Dim YY = 1Call SetLocalVariableResponse.Write Y 
   Sub SetLocalVariable 
   Dim Y 
   Y = 2End Sub % >

  由于变量没有显式声明,以下的脚本命令将返回 2。当过程调用将 Y 设置为 2 时,脚本引擎认为该过程是要修改全局变量:

<% 
   Y = 1Call SetLocalVariableResponse.Write Y 
   Sub SetLocalVariable 
   Y = 2 
   End Sub% >

  然而,全局变量仅在单个 ASP 页中可用,要使它在单个 ASP 页之外可用,就必须为变量赋予会话或应用程序作用域。会话作用域变量对一个用户所请求的 ASP 应用程序中的所有页都是可用的。应用程序作用域变量也如此。对单个用户来说,会话变量是存储信息的最佳途径,例如,用户首选项、用户名或用户的标识。对于一个特殊应用程序的所有用户,应用程序作用域是存储信息的最佳途径,例如,应用程序特定的问候语或应用程序所需的初始值。ASP 提供两个内建对象来让您存储变量:Session 对象和 Application 对象,这将在今后的 ASP 内建对象中着重讨论。

  让我们再来看看常量的定义,常量是用来代替一个数或字符串的名称,它在整个脚本中保持不变。您可以使用 Const 语句在 VBScript 中创建用户自定义常数。使用 Const 语句可以创建名称具有一定含义的字符串型或数值型常数,并给它们赋原义值。例如:。
  如:< % Const mystring=" 这是一个常量 " % >

   < % Const myage=100 % >

  请注意字符串文字包含在两个引号 (" ") 之间。这是区分字符串型常数和数值型常数的最明显的方法。日期文字和时间文字包含在两个井号 (#) 之间。例如:
   < % Const CutoffDate = #6-1-97# % >

  在理解了常量和变量之后,我们来看看什么是过程。它是一组能执行指定任务且具有返回值的脚本命令。您可以定义自己的过程,然后在脚本中反复调用它们。您可以将过程定义放在调用过程的 .asp 文件中,也可以将通用过程放在一个共享的 .asp 文件中,然后用 SSI #include 指令将其包含进其他调用其过程的 .asp 文件中。您还可选择另一种方法,即把这些功能打包在 ActiveX 组件中。过程定义可出现在 < SCRIPT > 和 < /SCRIPT > 标记内部且必须遵循声明脚本语言的规则。如果过程所用的语言与主脚本语言不同,则要使用 < SCRIPT > 元素。主脚本语言中的过程用脚本分界符 (< % 和 % >) 分隔。用 HTML< SCRIPT > 标记时,必须使用两个属性来保证服务器端能够处理脚本。使用 < SCRIPT > 标记的语法如下:

< SCRIPT RUNAT=SERVER LANGUAGE=JSCRIPT > 
   procedure definition 
   < /SCRIPT >

  这里的 RUNAT=SERVER 属性通知 Web 服务器在服务器上处理脚本。若不设置该属性,脚本将由客户端浏览器处理。LANGUAGE 属性决定此脚本块所用的脚本语言。您可以指定任何一种具有脚本引擎的语言。请使用 VBSCRIPT 指定 VBScript;用 JSCRIPT 指定 JScript。若不设置 LANGUAGE 属性,将用主脚本语言解释此脚本块。

  在 VBScript 中,过程被分为两类:Sub 过程和 Function 过程。Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句,执行操作但不返回值。Sub 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Sub 过程无任何参数,则 Sub 语句必须包含空括号 ()。

   Function 过程是包含在 Function 和 End Function 语句之间的一组 VBScript 语句。Function 过程与 Sub 过程类似,但是 Function 过程可以返回值。Function 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Function 过程无任何参数,则 Function 语句必须包含空括号 ()。Function 过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。Function 返回值的数据类型总是 Variant。在下面的示例中 Sub 过程使用两个固有的(或内置的)VBScript 函数,即 MsgBox 和 InputBox,来提示用户输入信息。然后显示根据这些信息计算的结果。计算由使用 VBScript 创建的 Function 过程完成,Celsius 函数将华氏度换算为摄氏度。Sub 过程 ConvertTemp 调用此函数时,包含参数值的变量被传递给函数。换算结果返回到调用过程并显示在消息框中。

 Sub ConvertTemp() 
   temp = InputBox(" 请输入华氏温度。", 1) 
   MsgBox " 温度为 " & Celsius(temp) & " 摄氏度。" 
   End Sub 
   Function Celsius(fDegrees) 
   Celsius = (fDegrees - 32) * 5 / 9 
   End Function

  给过程传递数据的途径是使用参数。参数被作为要传递给过程的数据的占位符。参数名可以是任何有效的变量名。使用 Sub 语句或 Function 语句创建过程时,过程名之后必须紧跟括号。括号中包含所有参数,参数间用逗号分隔。例如,在下面的示例中,fDegrees 是传递给 Celsius 函数的值的占位符:

 Function Celsius(fDegrees) 
   Celsius = (fDegrees - 32) * 5 / 9 
   End Function 

  要从过程获取数据,必须使用 Function 过程。请记住,Function 过程可以返回值;Sub 过程不返回值。

  以上给大家简要介绍了VBScript,由于篇幅的原因,不可能在此详尽介绍 VBScript 的所有知识。但是由于 ASP 本身并不是一种编程语言,因此在大家编写ASP 应用程序的过程中,必须借助脚本语言来实现许多特殊的功能,所以灵活熟练地掌握脚本语言对一个使用ASP 编写WEB 应用程序的程序员来说是至关重要的。

        无论您是一个有丰富编程经验的高手还是一个初学者,只要您现在希望通过ASP 编写WEB 应用程序,小编极力建议您掌握至少一门脚本语言(如VBScript)。

上一篇:ASP基础入门第四篇(脚本变量、函数、过程和条件语句)
下一篇:ASP基础入门第二篇(ASP基础知识)
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。