笔记|微软|微软
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 表单通常包含客户端脚本,以便在将信息发送到服务器之前验证用户输入。“验证脚本”可以检查许多事情,如用户输入值是否有效或者文本框是否为空。您可能需要验证用户是否在相应表单字段中输入了数字或文本信息,以防将潜在的无效信息发送到服务器。
通常,在客户端尽可能多地验证表单数据将非常有好处。除了能尽快提示用户输入错误外,客户端验证能提高响应速度、减少服务器负担并为其他应用程序释放带宽。
为了提高交互性,可以将错误信息放到无效信息所在的表单字段旁边,以便于用户发现出错的地方。(通常,基于 Web 的表单将请求转发给包含错误信息的单独的 Web 页。不能立即理解此信息的用户可能会灰心。)
由于通常无法得知集合中所存储的项目数,ASP 支持集合的 Count 属性,该属性返回集合中的项目个数。可以使用 Count 属性指定计数器的最大值。
要使通过“for”语句使用 Count 属性变得更为高效,应将 Count 值分配给本地变量,并用该变量来设置计数器的最大值。这样,脚本引擎就不必每次循环都去查找 Count 值。
<%
’声明计数器变量。
Dim lngItem, lngCount
lngCount = Session.Contents.Count
’重复该循环直到集合中的计数器等于项目个数。
For lngItem = 1 To lngCount
Response.Write Session.Contents(lngItem) & "
"
Next
%>
脚本可在单个 cookie 中嵌入多个关联值,以便减少在浏览器和 Web 服务器之间传递的 cookie 数目。Request 和 Response 对象的 Cookies 集合可在单个项目中载有多个值。这些子项目或子关键字可单独使用。只有 Request.Cookies 
《ASP入门-微软版》笔记
80酷酷网 80kuku.com