WEB编码规范

编制人:walaqi
   第一章 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 标记的属性赋值规范
     对于接受属性的标记,属性值必须使用双引号或者单引号包围。如:
     <body bgcolor=”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[CommandNam
e]。CommandName为自定义的同Sql语句功能相关的英文单词组合,如:
   strSqlUpdateModify
   strSqlInsertUser
   3.2 代码书写规范
   3.2.1 变量明确声明原则
   * 所有ASP程序文件,必须在代码的第一行包含<%option explicit%>。转为变量明确声明模式
   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] ‘必须指定游标类型


后来收的 ps^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


一.页面设计部分
1.img控件
 alt:所有展示类图片都要具有能简要描述图片内容的文字说明。
2.Input控件
 maxlength:所有INPUT控件都需要制定maxlength属性,默认值为数据库中对应的字段的长度。
 readonly:所有不可更改的信息都要使用readonly属性。
3.Form控件
 action:所有Form都要指定action,如果提交给本身就指定action=""
 method:执行不可逆动作使用POST,可逆动作使用GET
 onsubmit:所有form都要指定提交前需要的检查程序。
 所有form都要有对应的reset button。
4.button控件
 onclick:form中用于提交的button不容许使用此方法,所有数据检查通过form的onsubmit激活。
5.title属性
 所有页面都要具有和本页标题相同的title。
6.控件的命名
 采用控件类型缩写(小写)+英文单词(第一个字母大写)的方法。
 开发中控件基本涉及一下几类
 button:btn
 form:frm
 select:sel
 textarea:txt
 input:ipt 
7.语言设置
 所有中文页面都要加上如下语句:
 <meta http-equiv="Content-Language" content="zh-cn">
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
8.控件属性赋值
 所有控件的属性值都要使用双引号或者单引号包括起来。
 
二.客户端程序部分
1.错误提示信息的处理(2-1)
 所有错误信息全部使用中文提示错误信息,标点使用中文半角符号,格式如下:
  "错误:"+提示信息+"!"
2.成功提示信息的处理(2-2)
 所有成功信息全部使用中文提示成功信息,标点使用中文半角符号,格式如下:
  "成功:"+提示信息+"!"
3.页面的返回
 所有需要返回上一页的时候使用history.back();不使用history.go(-1);
 需要返回前n页(n>1)时使用history.go(-n);
 所有返回都使用连接的方式而不是button。
4.提交前数据的判断
 保证提交前的数据都会通过JavaScript进行数据类型以及长度的判断
 是否为数字:使用函数isNaN()
 长度判断: 长度要判断去掉前后空格后的实际长度
 为空判断: 所有不容许为空的输入字段都要在去掉前后空格后进行判断,同时如果该字段为查询条件则必须不能为空
 如果判断条件发现数据错误,则通过(2-1)提示错误信息,然后通过方法focus()聚焦错误字段。
5.删除数据前的提示
 所有涉及删除的操作,在用户选定以后都要再进行一次确认操作。

三.服务器端程序部分
1.数据的取得
 通过Get,Post,连接传递过来的数据在使用前都要通过trim去掉数据前后的空格。
2.数据的判断
 通过request的得到的参数数据需要再次进行空,类型,和长度的判断。
3.对象的关闭
 所有数据库和文件对象都要在使用后尽可能早的close,同时赋nothing。
4.提示信息
 所有错误提示信息使用JavaScript提示,保证使用者看不到任何内部错误信息。(如1-1)
 涉及数据库Update,Del,Insert的操作成功都要提示。(如1-2)
5.变量的使用
 所有变量在使用前都需要声明,并且赋初值。
6.变量的命名
 采用变量类型缩写(小写)+英文单词(第一个字母大写)的方法。
 开发中变量基本涉及一下几类
 整数:i
 小数:f
 字符: s
 布尔:b
 日期:d
 特殊的:
 循环依次采用i,j,m,n;
 数组用ary
 指针p,q
 临时变量tmp
 
七.SQL语句
1.排序
 order时应该尽量提前使用建立索引或者主键的字段排序。
2.select
 select时避免使用*,即使需要所有字段也应尽量一个一个按照使用的顺序罗列出来。
3.尽量避免使用in和not in


八.测试
 所有页面要在800*600,1024*768两种分辨率下运行通过。
 所有页面要在IE5.0,5.5以及6.0下运行通过没有JavaScript错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值