|
语句样式规范
每种脚本语言都有自己的大小写、缩进和其他与样式相关的特征的约定。由于 VBScript 不区分大小写,因此可以设计大写约定来提高可读性,如下面的建议所示。
If&Then&Else&End If语句:
If、Then、Else和EndIf的第一个字母大写。
将If、Then或Else后面的语句缩进两个空格。
在等号 (=) 的每一端放置空格。
避免使用不必要的括号。
正确的例子:
- <%
- If Request("FName") = "" Then
- Response.Clear
- Response.Redirect "test.html"
- Else
- Response.Write Request("FName")
- End If
- %>
复制代码
同样,Function 和Sub 语句的第一个字母大写,并将它们的定义缩进两个空格。
例子:
- Sub SessionOnStart
- Session("MyId") = Request.ServerVariables(&)
- End Sub
复制代码 避免使用下划线。
例子:
字符串连接语句
为保持一致性并实现预期的解释,请在 VBScript 字符串中使用字符串连接符 (&) 而不是加号 (+)。
不要像这样:
- WholeName = FirstName + " " + LastName
复制代码
应该这样写:
- WholeName = FirstName & " " & LastName
复制代码
字符串函数
使用String(number,character)函数创建由重复字符组成的字符串。例如,要创建一个由 12 个星号组成的字符串:
- Dim strAstString
- strAstString = String(12,"*")
复制代码
String()函数将字符代码和字符串表达式作为参数,但没有For &循环那么冗长。
Case 变量值
使用UCase()或LCase()在变量赋值和逻辑测试中保持案例一致。这在分配和逻辑测试时尤其重要。
变量声明
显式声明变量有助于暴露错误,例如拼写错误的变量名。要使代码更可靠和可读,请使用 VBScript 中的Option Explicit语句。
当您想使用强变量类型时,应将逻辑编程到使用支持它的语言构建的组件中,例如 Visual Basic 6.0 等中。在VBScript中如果不定义类型直接使用,会影响性能,尤其是在涉及数学计算时。
要让阅读您的脚本的其他人清楚地了解变量的预期用途,请使用小写的三个字符前缀来指示数据类型。即使 VBScript 或 JScript 都不支持显式数据类型,建议使用此类前缀。
为了命名变量的一致性,请在变量名称中使用首字母大写。不要大写前缀。例如,要将名为“SwitchOn”的变量的数据类型表示为布尔值,请使用表 A.2 中的前缀“bln”来命名变量“blnSwitchOn”。
表 A.2 变量数据类型的建议前缀
| | ADO command
| cmd
| ADO connection
| cnn
| ADO field
| fld
| ADO parameter
| prm
| ADO recordset
| rst
| Boolean
| bln
| Byte
| byt
| Collection object集合
| col
| Currency 货币类型
| cur
| Date-time 时间类型
| dtm
| Double 双精度
| dbl
| Error
| err
| Integer 整形
| int
| Long 长整形
| lng
| Object 对象
| obj
| Single 单精度
| sng
| String 字符串
| str
| User-defined type
| udt
| Variant
| vnt
|
为保持变量名称长度合理,请使用标准化缩写。为清楚起见,请在整个应用程序或一组相关应用程序中保持缩写一致。
不建议示范:
建议示范:
变量值修剪Trim
修剪值时保持一致。在将它们置于状态之前将数值修剪到所需的长度。这将消除由修整方案不一致引起的处理错误。例如,像 9.997 这样重复用作乘数的值将累积与修剪后的值 9.9 不同的结果。使用 LTrim、RTrim 或 Trim 修剪字符串中不需要的前导和尾随空格,以消除空格导致处理错误或显示未对齐的可能性。
脚本性能
对象和变量初始化
以下信息将帮助您初始化和设置对象和变量的维度,以实现更快的执行和有效地使用服务器资源。除非另有说明,否则假定为 VBScript。
范围变量
使用页面范围以获得最佳性能
局部变量驻留在函数和子例程中。将页面范围(也称为本地范围)赋予变量,除非您有令人信服的理由使用更广泛的范围。例如,您可能希望将会话范围分配给用户会话中多个脚本中使用的变量。局部变量被编译成表条目。在运行时,通过快速执行的表查找来解析对局部变量的引用,从而使局部变量比全局变量具有更快的性能。
谨慎有效地使用全局变量
全局变量在运行时解析,执行速度比局部变量慢得多。未声明的全局变量最慢,第一次使用时需要搜索整个变量列表。当您需要为变量赋予全局范围时,请在使用它们之前使用Dim语句声明它们。通过消除对整个变量列表的搜索,这节省了首次使用的宝贵时间。
避免使用公共变量
不要使用定义为Public的变量。正在审查Public关键字以确定未来的使用。请改用Dim。
使用对象的应用程序范围
存储在具有应用程序范围的变量中的信息位于内存中,并被缓存以供应用程序中的任何页面访问。如果值不经常更改,则将应用程序范围赋予应用程序中经常使用的变量。
无论有什么潜在的好处,在决定是否将应用程序范围赋予对象时都要谨慎。它可能会影响性能并降低可靠性(您的应用程序可能会停止响应)。要使用具有应用程序范围的对象获得最佳性能,请将线程设置为 BOTH。
避免使用服务器变量
如果您的应用程序不需要它们,最好避免使用服务器变量。每当您的 ASP 应用程序访问服务器变量时,您的网站都会发出一个请求,该请求检索服务器的整个变量集合——而不仅仅是要使用的变量。这会在第一次使用服务器变量时导致性能下降。您可以通过将ENABLESESSIONSTATE指令设置为 FALSE来强制执行此限制。 |
|