ASP编码规范(2006-10-2114:54:11) 第一章 ASP编码规范通述 ASP编码分为两大部分,一部分为静态文件编码,一部分为包含服务器端脚本的动态文件编码。 静态文件编码分script编码和HTML编码两部分。 服务器端编码则分为服务器脚本、客户端脚本、HTML脚本三部分。 编码规范采用如下约定: 所有客户端脚本一律使用javascript 所有服务器端脚本一律使用VBscript 静态页面输出一律使用HTML脚本 本规范不适用于由服务器端脚本所产生的客户端脚本代码。 第二章 静态文件编码规范: 静态文件脚本部分采用javascript编写。输出部分采用HTML标记语言。 1. HTML标记语言编码规范 1.1 标记的换行规范: * 一个标记必须占用一行。不得出现两个标记在同一行的情况(同一标记的关闭标记除外),如: <tr><td>text</td></tr> 而必须写成: <tr> <td>text</td> <tr> 1.2 标记的关闭规范 *静态文件内容必须包含在<body></body>标记中间 *<body>标记必须包含在<html></html>标记中间 * 对于需要关闭的标记,如: <html><title><body><table><tr><td><p><textarea><select><font><option><div><span> 必须同其关闭标记同时出现。如 <body>…<p>…<font>….</font>….</p>…..</body> * 不得出现交叉包含的语句,如: <p><font>…..</p></font> 1.3 标记的属性赋值规范 对于接受属性的标记,属性值必须使用双引号或者单引号包围。如: <bodybgcolor=”red”> <font size=’7’> 1.4 标记的缩进规范 * 最高一级的父标记采用左对齐顶格方式书写。 * 下一级标记采用左对齐向右缩进一个Tab的方式书写 在下一级依此类推,分别左对齐相对于父标记向右缩进一个Tab的方式书写 * 同一级标记的首字符上下必须对齐。 2. 客户端javascript规范 2.1 变量命名规范 * 常量以及全局变量名必须全部使用大写字母 * 变量名首字母必须小写。 * 变量名必须使用其类型的所写字符串开始。各种类型的所写字符串如下: * 整型变量:int * 长整型变量:lng * 浮点型变量:flt * 双精度变量:dbl * 对象引用变量:obj * 字符串变量:str * Date类型变量:dtm * 变量名必须采用有意义的单词命名,如: strUserName、lngArrayIndex * 变量名除首字母小写外,其他单词首字符必须大写 * 如果变量名过长可以使用单词缩写,除了被广泛了解的单词缩写以外,所有使用单词所写的变量名必须在定义时给出注释,如: var strAdName //用于表示Administrator帐户的名称 var strAdminName //不用给出注释,Admin被广泛了解 2.2 变量使用规范 * 变量使用前必须定义。没有定义的变量禁止使用 * 变量的使用尽量缩小到小的作用域。如循环使用 for(var I=0;I<12;I++){ } 而不是: var I; for(I=0;I<12,I++){ } 2.3 对象命名规范 各种页面对象如text输入框、按钮、下拉选择框在命名时必须使用以下对应前缀: * text输入框:txt * button按钮:btn * select下拉选择框:sel * option项:opt * form表单:frm * frame框架:fra * hidden表单项:hdn * div标记:div * span标记:span * 对话框对象:dlg * 窗口对象:win 2.4 函数以及子过程命名规范 * 函数命名必须使用动词+名词对的方式,并且能够体现函数的功能 * 函数命名的动词前缀必须是同函数功能相关的完整动词 * 函数命名第一个单词的首字母小写,后面每一个单词的首字母大写 第三章 动态文件编码规范 1. HTML书写规范 HTML书写规范必须符合静态文件HTML标记书写规范,参考(第二章第一节) 2. 客户端脚本规范 动态文件客户端脚本一律采用javascript书写,并必须符合静态文件编码规范中有关javascript编码规范的规定(参考第二章第二节) 3. 服务器端脚本书写规范 服务器端脚本书写采用VBscript书写 3.1 命名规范 3.1.1 VBscript脚本变量命名规范 * 常量以及全局变量必须全部使用大写字母 * 常量必须使用CONST_前缀 * 全局变量必须使用G_前缀 * 变量名首字母必须小写。 * 变量名必须使用其类型的所写字符串开始。各种类型的所写字符串如下: * 整型变量:int * 长整型变量:lng * 浮点型变量:flt * 双精度变量:dbl * 对象引用变量:obj * 字符串变量:str * Date类型变量:dtm * 变量名必须采用有意义的单词命名,如: strUserName、lngArrayIndex * 变量名除首字母小写外,其他单词首字符必须大写 * 如果变量名过长可以使用单词缩写,除了被广泛了解的单词缩写以外,所有使用单词所写的变量名必须在定义时给出注释,如: dim strAdName ‘用于表示Administrator帐户的名称 dim strAdminName ‘不用给出注释,Admin被广泛了解 3.1.2 对象命名规范 各种对象如Connection、Recordset、Command在命名时必须使用以下对应前缀: * Connection对象:conn * Recordset对象:rs * Command对象:cmd * Parameter对象:param * Field对象:fld * Error对象:err 3.1.3 函数以及子过程命名规范 * 函数命名必须使用动词+名词对的方式,并且能够体现函数的功能 * 函数命名的动词前缀必须是同函数功能相关的完整动词 * 函数命名第一个单词的首字母大写,后面每一个单词的首字母大写 3.1.4 常用变量命名规范: 说明:包含在[>中的部分为可省略部分 * Connection对象:conn[Name>。Name为所连接数据库的服务器名字 *Recordset变量命名规范:rs[Name>。Name为自定义的同rs存储内容有关的英文单词组合 *Command对象:cmd[Name>。Name为自定义的同command目的有关的英文单词组合 *SQL语句字符串变量:strSql[CommandName>。CommandName为自定义的同Sql语句功能相关的英文单词组合,如: strSqlUpdateModify strSqlInsertUser 3.2 代码书写规范 3.2.1 变量明确声明原则 * 所有ASP程序文件,必须在代码的第一行包含<%optionexplicit%>。转为变量明确声明模式 3.2.2 字符集设定原则 *所有将对客户端产生中文输出的ASP程序文件,必须在输出前设定Charset为”GB2312”.如:Response.Charset =“GB2312” 3.2.3 函数使用原则 * 尽量使用函数封装代码块 * 连续代码块尽量不要超过50行。最多不得超过70行 * 尽量使用局部变量。 * 如有涉及到全局的资源,如Connection,尽量作为函数的参数传入 * 所有在函数内部创建打开的资源,在退出函数前必须关闭释放。如:Recordset,Command 3.2.4 Request、Session、Application使用规范 *所有需要放入Session、Application中的对象,必须采用有意义的英文名字。除了被广泛了解的单词缩写以外,不得采用单词缩写。如: Session(“cp”) = strCurrentUserIP ‘不允许 Session(“CurrentUserIP”) = strCurrentUserIP Session(“Pwd”) = strPwd ‘允许,Pwd被广泛了解为密码 *所有需要在代码内用到的Request、Session、Application中的元素,必须在代码头部赋值给代码内声明的变量。 * 如果获得Form中提交的内容,必须使用Request.Form(“itemName”). * 如果获得QueryString中提交的内容,必须使用Request.QueryString(“itemName”) * 不得在代码中出现Request(“”)这样的引用方式 3.2.5 HTML同服务器端脚本混合使用原则 * 服务器端脚本标记“<%”必须同其上一行紧邻的标记左对齐,如: <table> <% do while not rs.eof %> <tr> <td>text</td> </tr> <% rs.movenext loop %> </table> * 服务器端脚本标记“<%”同其后的代码不得在同一行书写 * “%>”同其前面的代码不得在同一行书写 * 服务器端脚本标记”%>”同其最近的”<%”标记对齐 * 服务器端内部的HTML代码依据静态文件的HTML缩进规则编写,不遵循服务器端脚本缩进规则 * HTML标记内部的代码,依据服务器端脚本的缩进规则,不遵循HTML代码缩进规则第四章 常见错误 1. ADO的事务处理 1.1 错误代码:80004005。 1.1.1 错误描述: Microsoft OLE DB Provider for ODBC Drivers 错误''''''''80004005'''''''' 不能在 firehose 方式下启动事务 1.1.2 解决方法: 在开始ADO的事务的时候,必须首先关闭使用同一个连接对象打开的记录集,或者在打开那些游标集之前,设置游标集位置类型为adUseClient.(使用客户端游标集) 第五章 代码习惯书写示例 1. ADO对象的使用 1.1 ADODB.Connection对象 1.2 ADODB.Command对象 1.3 ADODB.Recordset对象 1.3.1 创建: Set rs =Server.CreateObject(“ADODB.Recordset”) rs.CursorLocation = adUseClient rs.Open strSql,conn,1[,1> ‘必须指定游标类型 http://blog.sina.com.cn/s/blog_4aeb4535010005kr.html