当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP系列讲座(六)编写过程

ASP
基于ASP的收发文管理系统的设计与实现
用ASP制作张扬个性的调查系统
使用XMLHTTP制作域名查询系统
Delphi编写组件封装asp代码的基本步骤
采用XMLHTTP编写一个天气预报的程序
菜鸟详听ASP中也能解压缩rar文件
用Asp+XmlHttp实现RssReader功能
纯ASP代码之公历转农历实现(含属相)
纯ASP代码之公历转农历实现(含属相)--例子代码
多个域名后缀同时查询的域名查询系统
实现有管理功能的ASP留言板
Jmail发信的实例,模块化随时调用
纯ASP(VBscript)写的全球IP地址搜索程序
数字和字母组合并生成图片的验证码祥解
金额大小写转换的asp完全无错版本
用ASP学做一个在线调查
利用客户端js实现汉字简体繁体转换
ASP操作XML文件的完整实例
浅谈TeeChart组件在ASP中的应用
在VB中利用Word宏命令开发ASP组件

ASP系列讲座(六)编写过程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 200 ::
收藏到网摘: n/a

  过程是一组能执行指定任务且具有返回值的脚本命令。您可以定义自己的过程,然后在脚本中反复调用它们。

您可以将过程定义放在调用过程的 .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 属性,将用主脚本语言解释此脚本块。

脚本块中的命令必须用所选的脚本语言形成一个或多个完整的过程。例如,以下命令定义 JScript 过程 MyFunction。

<HTML>
<SCRIPT RUNAT=SERVER LANGUAGE=JSCRIPT>
  function MyFunction()
  {
      Response.Write("MyFunction Called")
  }  
</SCRIPT>
要点    不要在服务器端的 <SCRIPT> 标记内部包含任何不属于某个完整过程的一部分的脚本命令。由于执行顺序不可预测,所以不属于过程的命令可能会导致意外结果。另外,在过程内不能使用 ASP 输出表达式 <%=,而应使用 Response.Write。

调用过程
要调用过程,在命令中包含过程名即可。如果从 VBScript 中调用 JScript 过程,就必须在过程名后加上括号;如过程没有变量,就用空括号。不管是从 JScript 调用 VBScript 还是调用 JScript 过程,在过程后总要加上括号。

对于 VBScript,调用过程时要用 Call 关键字。如果调用的过程需要括号,变量表必须放在括号内。如果省略 Call 关键字,也必须省略变量表外的括号。如果用 Call 语法调用任何内建的或用户自定义的函数,函数的返回值将被丢弃。

下面将举例说明用两种不同的脚本语言(VBScript 和 JScript)创建和调用过程。

<%@ LANGUAGE = VBSCRIPT >%
<HTML>
<BODY>
<% Call Echo %>
<BR>
<% Call PrintDate() %>
</BODY>
</HTML>

<%
Sub Echo
  Response.Write "<TABLE>"
  Response.Write "<TR><TH>Name</TH><TH>Value</TH></TR>"
  Set Params = Request.QueryString
  For Each p in Params
    Response.Write "<TR><TD>" & p & "</TD><TD>" & _
    Params(p) & "</TD></TR>"
  Next
Response.Write "</TABLE>"
End Sub
%>

<SCRIPT LANGUAGE=JScript RUNAT=Server>
function PrintDate()
{
  var x
  x = new Date()
  Response.Write(x.toString())
}
</SCRIPT>
将数组传递给过程
在 VBScript 中,要将一个完整的数组传递给过程,可使用数组名,后接空括号;而在 JScript 中,要用空的方括号。