ASP编写过程是一组能执行指定任务且具有返回值的脚本命令。您可以定义自己的过程,然后在脚本中反覆调用它们。
编写过程
您可以将过程定义放在调用过程的 .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 中,要用空的方括弧。