日期:2014-01-20  浏览次数:21010 次


ASP 的“处理指令” <%@ 关键字 %> 给出 ASP 处理 .asp 文件所需的信息。例如,以下指令将 VBScript 设置为页面的主脚本语言: 
<%@ LANGUAGE=VBScript %> 
处理指令必须位于 .asp 文件的首行。要在页面中添加多条指令,这些指令必须位于相同的分隔符内。请勿将处理指令置于由“#include”语句包括的文件内。必须在符号 @ 和关键字之间加入空格。处理指令具有以下关键字: 
  △LANGUAGE 关键字设置用于 .asp 文件的脚本语言。请参阅使用脚本语言。 
  △ENABLESESSIONSTATE 关键字指定 .asp 文件是否使用会话语句。请参阅管理会话。 
  △CODEPAGE 关键字设置 .asp 文件的代码页(字符编码)。 
  △LCID 关键字设置文件的位置表示符。 
  △TRANSACTION 关键字指定 .asp 文件将在事务环境下运行。请参阅了解事务。 
要点:可以在一条指令中包含多个关键字。关键字/值对必须由空格分开。等号两边不要留有空格。 以下示例既设置了脚本语言也设置了代码页: 
<%@ LANGUAGE="JScript" CODEPAGE="932" %> 

在服务器上使用 VBScript 和 ASP 时,将禁用两个 VBScript 特性。因为使用 Active Server Pages 编写的脚本在服务器上执行,所以不支持用来提供用户界面元素的 VBScript 语句 InputBox 和 MsgBox。另外,不要在服务器端脚本中使用 VBScript 函数 CreateObject 和 GetObject。而应使用 Server.CreateObject,以便 ASP 可以跟踪对象例程。由 CreateObject 语句或 GetObject 语句创建的对象既不能访问 ASP 内建的对象,也不能参与事务。

因为 ASP 中的所有脚本都在服务器端进行处理,所以,没有必要包含 HTML 注释标记,用来对不支持脚本的浏览器隐藏脚本,这是客户端脚本的通常做法。所有 ASP 命令都将在内容发送到浏览器之前处理。可以使用 HTML 注释向 HTML 页中添加备注;这些注释将被返回给浏览器,如果用户查看 HTML 源文件,将可以看到这些注释。VBScript 支持撇号格式的注释。与 HTML 注释不同,处理脚本时将删除这些注释并且不会发送到浏览器。 

输出表达式中不能包含注释。例如,下面第一行能正常工作,而第二行则无法工作,因为该行以 <%= 开始。 
<% i = i +1 ’此语句用来递增 i 值。(此脚本会工作。) %> 
<%= name ’此语句用来打印变量名。(此脚本将失败。) %> 

可以在 .asp 文件中使用 VBScript“Option Explicit”语句,以便要求必须使用“Dim”、“Private”、“Public”和“ReDim”语句显式声明变量。“Option Explicit”语句必须位于任何 ASP 命令、任何 HTML 文本或脚本命令之前。例如: 
<% Option Explicit %> 
<HTML> 
<% 
Dim strUserName 
Public lngAccountNumber 
%> 
注意:将变量范围限制到过程中有利于提高性能。 

有必要养成显式声明所有变量的习惯。这一点当使用“#include”语句在 .asp 文件中包含其他文件时尤其重要。被包含的脚本虽然在单独的文件中,但却当作是包含文件的一部分。除非声明变量,否则很容易忘记必须在主脚本和被包含脚本中使用不同的变量名。 

如果在脚本中要多次参考 session 作用域变量,可以考虑将该变量赋给一个局部变量以便提高性能。 同样地,如果脚本重复参考 Application 作用域变量,应将该变量赋给局部变量以便提高性能。 

可以定义自己的常量。在 VBScript 中,使用“Const”语句。在 JScript 中,可以使用“var”语句将常量值赋给变量。如果要在多个 .asp 文件中使用常量,则需要将定义放在单独文件中,并在所有使用该常量的 .asp 文件中包含这些定义。 

将服务器端脚本语句散布到客户端脚本(由 HTML <SCRIPT> 标记括起),可以在请求时动态初始化和更改客户端脚本,用来配置客户端数据库或 DHTML 个性化脚本。创造性地运用这项技术还可以减少往返次数和服务器处理。 

对首要脚本语言之外其他语言的过程使用 <SCRIPT> 元素。当使用 HTML <SCRIPT> 标签时,必须使用两个属性以便确保服务器端能够处理脚本。使用 <SCRIPT> 标签的语法为: 
<SCRIPT LANGUAGE=JScript RUNAT=SERVER> 
过程定义 
</SCRIPT> 
脚本块中的命令必须以所选脚本语言中形成一个或多个过程。例如,下列命令定义 JScript 过程“MyFunction”。 
<HTML> 
<SCRIPT LANGUAGE=JScript RUNAT=SERVER > 
function MyFunction()  { Response.Write("您调用了 MyFunction()。") } 
</SCRIPT> 
要点:不要在服务器端 <SCRIPT> 标签内包含任何完整过程以外的脚本命令。过程以外的命令没有固定的执行顺序,因此可能导致无法预知的结果。另外,在过程中不能使用 ASP 输出命令 <%= %>。不过,可以通过 Response.Write 将内容发送到浏览器。 

对于 VBScript,调用过程时也可以使用关键字 Call。不过,如果调用的过程要求变量,则变量列表必须包含在括号内。如果省略关键字 Call,同时也必须省略包含变量列表的括号。如果使用 Call 语句调用任何内置函数或用户定义函数,将丢弃函数的返回值。 

要将整个数组传递给过程,在 VBScript 中,数组名后应紧接一对空括号.

设计优秀的 Web 表单通常包含客户端脚本,以便在将信息发送到服务器之前验证用户输入。“验证脚本”可以检查许多事情,如用户输入值是否有效或者文本框是否为空。您可能需要验证用户是否在相应表