ASP编码规范

  第一章 ASP编码规范通述
    ASP编码分为两大部分,一部分为静态文件编码,一部分为包含服务器端脚本的动态文件编码。
    静态文件编码分Script编码和HTML编码两部分。
    服务器端编码则分为服务器脚本、客户端脚本、HTML脚本三部分。
    编码规范采用如下约定:
            所有客户端脚本一律使用javascript
     所有服务器端脚本一律使用VBScript
     静态页面输出一律使用HTML脚本
    本规范不适用于由服务器端脚本所产生的客户端脚本代码。
  第二章 静态文件编码规范:
    静态文件脚本部分采用javascript编写。输出部分采用HTML标记语言。
  1. HTML标记语言编码规范
  1.1 标记的换行规范:
  * 一个标记必须占用一行。不得出现两个标记在同一行的情况(同一标记的关闭标记除外),如:
  text
  而必须写成:
  
          text
            
  1.2 标记的关闭规范
  * 静态文件内容必须包含在标记中间
  * 标记必须包含在标记中间
  * 对于需要关闭的标记,如:
    <body><table><tr><td><p><textarea><select><font><option><div><span><br/>    必须同其关闭标记同时出现。如<br/>    <body>…<p>…<font>….</font>….</p>…..</body><br/>  * 不得出现交叉包含的语句,如:<br/>  <p><font>…..</p></font><br/>  1.3 标记的属性赋值规范<br/>    对于接受属性的标记,属性值必须使用双引号或者单引号包围。如:<br/>    <body bgcolor=”red”><br/>    <font size=’7’><br/>  1.4 标记的缩进规范<br/>  * 最高一级的父标记采用左对齐顶格方式书写。<br/>  * 下一级标记采用左对齐向右缩进一个Tab的方式书写<br/>    在下一级依此类推,分别左对齐相对于父标记向右缩进一个Tab的方式书写<br/>  * 同一级标记的首字符上下必须对齐。<br/>  2. 客户端javascript规范<br/>  2.1 变量命名规范<br/>  * 常量以及全局变量名必须全部使用大写字母<br/>  * 变量名首字母必须小写。<br/>  * 变量名必须使用其类型的所写字符串开始。各种类型的所写字符串如下:<br/>  * 整型变量:int<br/>  * 长整型变量:lng<br/>  * 浮点型变量:flt<br/>  * 双精度变量:dbl<br/>  * 对象引用变量:obj<br/>  * 字符串变量:str<br/>  * Date类型变量:dtm<br/>  * 变量名必须采用有意义的单词命名,如:<br/>  strUserName、lngArrayIndex<br/>  * 变量名除首字母小写外,其他单词首字符必须大写<br/>  * 如果变量名过长可以使用单词缩写,除了被广泛了解的单词缩写以外,所有使用单词所写的变量名必须在定义时给出注释,如:<br/>  var strAdName //用于表示Administrator帐户的名称<br/>  var strAdminName //不用给出注释,Admin被广泛了解<br/>  2.2 变量使用规范<br/>  * 变量使用前必须定义。没有定义的变量禁止使用<br/>  * 变量的使用尽量缩小到小的作用域。如循环使用<br/>  for(var I=0;I<12;I++){<br/><br/>}<br/>  而不是:<br/>  var I;<br/>  for(I=0;I<12,I++){<br/><br/>}<br/>  2.3 对象命名规范<br/>  各种页面对象如text输入框、按钮、下拉选择框在命名时必须使用以下对应前缀:<br/>  * text输入框:txt<br/>  * button按钮:btn<br/>  * select下拉选择框:sel<br/>  * option项:opt<br/>  * form表单:frm<br/>  * frame框架:fra<br/>  * hidden表单项:hdn<br/>  * div标记:div<br/>  * span标记:span<br/>  * 对话框对象:dlg<br/>  * 窗口对象:win<br/>  2.4 函数以及子过程命名规范<br/>  * 函数命名必须使用动词+名词对的方式,并且能够体现函数的功能<br/>  * 函数命名的动词前缀必须是同函数功能相关的完整动词<br/>  * 函数命名第一个单词的首字母小写,后面每一个单词的首字母大写<br/>  第三章 动态文件编码规范<br/>  1. HTML书写规范<br/>    HTML书写规范必须符合静态文件HTML标记书写规范,参考(第二章第一节)<br/>  2. 客户端脚本规范<br/>    动态文件客户端脚本一律采用javascript书写,并必须符合静态文件编码规范中有关javascript编码规范的规定(参考第二章第二节)<br/>  3. 服务器端脚本书写规范<br/>    服务器端脚本书写采用VBScript书写<br/>  3.1 命名规范<br/>  3.1.1 VBScript脚本变量命名规范<br/>  * 常量以及全局变量必须全部使用大写字母<br/>  * 常量必须使用CONST_前缀<br/>  * 全局变量必须使用G_前缀<br/>  * 变量名首字母必须小写。<br/>  * 变量名必须使用其类型的所写字符串开始。各种类型的所写字符串如下:<br/>  * 整型变量:int<br/>  * 长整型变量:lng<br/>  * 浮点型变量:flt<br/>  * 双精度变量:dbl<br/>  * 对象引用变量:obj<br/>  * 字符串变量:str<br/>  * Date类型变量:dtm<br/>  * 变量名必须采用有意义的单词命名,如:<br/>  strUserName、lngArrayIndex<br/>  * 变量名除首字母小写外,其他单词首字符必须大写<br/>  * 如果变量名过长可以使用单词缩写,除了被广泛了解的单词缩写以外,所有使用单词所写的变量名必须在定义时给出注释,如:<br/>  dim strAdName ‘用于表示Administrator帐户的名称<br/>  dim strAdminName ‘不用给出注释,Admin被广泛了解<br/>    <br/>  3.1.2 对象命名规范<br/>  各种对象如Connection、Recordset、Command在命名时必须使用以下对应前缀:<br/>  * Connection对象:conn<br/>  * Recordset对象:rs<br/>  * Command对象:cmd<br/>  * Parameter对象:param<br/>  * Field对象:fld<br/>  * Error对象:err<br/>  3.1.3 函数以及子过程命名规范<br/>  * 函数命名必须使用动词+名词对的方式,并且能够体现函数的功能<br/>  * 函数命名的动词前缀必须是同函数功能相关的完整动词<br/>  * 函数命名第一个单词的首字母大写,后面每一个单词的首字母大写<br/>  3.1.4 常用变量命名规范:<br/>    说明:包含在[>中的部分为可省略部分<br/>  * Connection对象:conn[Name>。Name为所连接数据库的服务器名字<br/>  * Recordset变量命名规范:rs[Name>。Name为自定义的同rs存储内容有关的英文单词组合<br/>  * Command对象:cmd[Name>。Name为自定义的同command目的有关的英文单词组合<br/>  * SQL语句字符串变量:strSql[CommandName>。CommandName为自定义的同Sql语句功能相关的英文单词组合,如:<br/>  strSqlUpdateModify<br/>  strSqlInsertUser<br/>  3.2 代码书写规范<br/>  3.2.1 变量明确声明原则<br/>  * 所有ASP程序文件,必须在代码的第一行包含<%option explicit%>。转为变量明确声明模式<br/>  3.2.2 字符集设定原则<br/>  * 所有将对客户端产生中文输出的ASP程序文件,必须在输出前设定Charset为”GB2312”.如:Response.Charset = “GB2312”<br/>  3.2.3 函数使用原则<br/>  * 尽量使用函数封装代码块<br/>  * 连续代码块尽量不要超过50行。最多不得超过70行<br/>  * 尽量使用局部变量。<br/>  * 如有涉及到全局的资源,如Connection,尽量作为函数的参数传入<br/>  * 所有在函数内部创建打开的资源,在退出函数前必须关闭释放。如:Recordset,Command<br/>  3.2.4 Request、Session、Application使用规范<br/>  * 所有需要放入Session、Application中的对象,必须采用有意义的英文名字。除了被广泛了解的单词缩写以外,不得采用单词缩写。如:<br/>  Session(“cp”) = strCurrentUserIP ‘不允许<br/>  Session(“CurrentUserIP”) = strCurrentUserIP<br/>  Session(“Pwd”) = strPwd ‘允许,Pwd被广泛了解为密码<br/>  * 所有需要在代码内用到的Request、Session、Application中的元素,必须在代码头部赋值给代码内声明的变量。<br/>  * 如果获得Form中提交的内容,必须使用Request.Form(“itemName”).<br/>  * 如果获得QueryString中提交的内容,必须使用Request.QueryString(“itemName”)<br/>  * 不得在代码中出现Request(“”)这样的引用方式<br/>  3.2.5 HTML同服务器端脚本混合使用原则<br/>  * 服务器端脚本标记“<%”必须同其上一行紧邻的标记左对齐,如:<br/>  <table><br/>  <% <br/>  do while not rs.eof <br/>  %><br/>          <tr><br/>              <td>text</td><br/>          </tr><br/>  <%<br/>          rs.movenext<br/>      loop<br/>  %><br/>  </table><br/>  * 服务器端脚本标记“<%”同其后的代码不得在同一行书写<br/>  * “%>”同其前面的代码不得在同一行书写<br/>  * 服务器端脚本标记”%>”同其最近的”<%”标记对齐<br/>  * 服务器端内部的HTML代码依据静态文件的HTML缩进规则编写,不遵循服务器端脚本缩进规则<br/>  * HTML标记内部的代码,依据服务器端脚本的缩进规则,不遵循HTML代码缩进规则<br/><br/>第四章 常见错误<br/>  1. ADO的事务处理<br/>  1.1 错误代码:80004005。<br/>  1.1.1 错误描述:<br/>    Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' <br/>    不能在 firehose 方式下启动事务 <br/>  1.1.2 解决方法:<br/>    在开始ADO的事务的时候,必须首先关闭使用同一个连接对象打开的记录集,或者在打开那些游标集之前,设置游标集位置类型为adUseClient.(使用客户端游标集)<br/>    <br/>  第五章 代码习惯书写示例<br/>  1. ADO对象的使用<br/>  1.1 ADODB.Connection对象<br/>  1.2 ADODB.Command对象<br/>  1.3 ADODB.Recordset对象<br/>  1.3.1 创建:<br/>    Set rs = Server.CreateObject(“ADODB.Recordset”)<br/>    rs.CursorLocation = adUseClient<br/>    rs.Open strSql,conn,1[,1> ‘必须指定游标类型 <div class="adv-box"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2168005545673813" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2168005545673813" data-ad-slot="9530501434"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="Content-body"> <div class="Modify">[本日志由 admin 于 2006-07-24 00:58 AM 编辑]</div><img border="0" src="images/Cprevious.gif" alt=""/><strong>上一篇:</strong> <a href="?id=90" accesskey=",">网站开发规范及流程v1.0 </a><br/><img border="0" src="images/Cnext.gif" alt=""/><strong>下一篇:</strong> <a href="?id=92" accesskey=".">简单WEB开发规范(修正版) </a><br/> <img src="images/From.gif" style="margin:4px 2px -4px 0px" alt=""/><strong>文章来自:</strong> <a href="http://www.imwebs.com/blog/" target="_blank"></a><br/> <img src="images/icon_trackback.gif" style="margin:4px 2px -4px 0px" alt=""/><strong>引用通告:</strong> <a href="trackback.asp?tbID=91&action=view" target="_blank">查看所有引用</a> | <a href="javascript:;" title="获得引用文章的链接" onclick="getTrackbackURL(91)">我要引用此文章</a><br/> <img src="images/tag.gif" style="margin:4px 2px -4px 0px" alt=""/><strong>Tags:</strong> <a href="default.asp?tag=ASP">ASP</a> <br/> <img src="images/notify.gif" style="margin:4px 2px -4px 0px" alt=""/><strong>相关日志:</strong> <div class="Content-body" id="related_tag" style="margin-left:25px"></div> <script language="javascript" type="text/javascript">Related(91, 1, 1, 'related_tag');</script> </div> <div class="Content-bottom"><div class="ContentBLeft"></div><div class="ContentBRight"></div>评论: 0 | 引用: 1 | 查看次数: 10015 </div></div> </div> <a name="comm_top" href="#comm_top" accesskey="C"></a> <div id="mainContent-bottomimg"></div> </div> </div> <div id="sidebar"> <div id="innersidebar"> <div id="sidebar-topimg"><!--工具条顶部图象--></div> <div id="Side_User" class="sidepanel"><h4 class="Ptitle">User Panel</h4><div class="Pcontent"><a href="login.asp" class="sideA" accesskey="L">登录</a><a href="register.asp" class="sideA" accesskey="U">用户注册</a><a href="javascript:void(0)" class="sideA" accesskey="P" onclick="PasswordProtection();">忘记密码</a></div><div class="Pfoot"></div></div><div id="Side_Category" class="sidepanel"><h4 class="Ptitle">Category</h4><div class="Pcontent"><img src="images/icons/22.gif" border="0" style="margin:3px 4px -4px 0px;" alt="日志首页"/><a class="CategoryA" href="default.asp" title="日志首页">Index</a><br/><img src="images/icons/12.gif" border="0" style="margin:3px 4px -4px 0px;" alt=""/><a class="CategoryA" href="default.asp?cateID=4" title="">Computer [91]</a> <a href="feed.asp?cateID=4" title="订阅该分类内容"><img src="images/rss.png" border="0" style="margin:3px 4px -1px 0px;" alt=""/></a><br/><img src="images/icons/20.gif" border="0" style="margin:3px 4px -4px 0px;" alt=""/><a class="CategoryA" href="default.asp?cateID=5" title="">Software [70]</a> <a href="feed.asp?cateID=5" title="订阅该分类内容"><img src="images/rss.png" border="0" style="margin:3px 4px -1px 0px;" alt=""/></a><br/><img src="images/icons/15.gif" border="0" style="margin:3px 4px -4px 0px;" alt=""/><a class="CategoryA" href="default.asp?cateID=6" title="">Design [53]</a> <a href="feed.asp?cateID=6" title="订阅该分类内容"><img src="images/rss.png" border="0" style="margin:3px 4px -1px 0px;" alt=""/></a><br/><img src="images/icons/16.gif" border="0" style="margin:3px 4px -4px 0px;" alt=""/><a class="CategoryA" href="default.asp?cateID=10" title="">WebBuild [230]</a> <a href="feed.asp?cateID=10" title="订阅该分类内容"><img src="images/rss.png" border="0" style="margin:3px 4px -1px 0px;" alt=""/></a><br/><img src="images/icons/11.gif" border="0" style="margin:3px 4px -4px 0px;" alt=""/><a class="CategoryA" href="default.asp?cateID=3" title="">Coding [52]</a> <a href="feed.asp?cateID=3" title="订阅该分类内容"><img src="images/rss.png" border="0" style="margin:3px 4px -1px 0px;" alt=""/></a><br/><img src="images/icons/24.gif" border="0" style="margin:3px 4px -4px 0px;" alt="VisualStudio.Net"/><a class="CategoryA" href="default.asp?cateID=18" title="VisualStudio.Net">dotNet [6]</a> <a href="feed.asp?cateID=18" title="订阅该分类内容"><img src="images/rss.png" border="0" style="margin:3px 4px -1px 0px;" alt=""/></a><br/><img src="images/icons/23.gif" border="0" style="margin:3px 4px -4px 0px;" alt=""/><a class="CategoryA" href="default.asp?cateID=8" title="">LifeStyle [91]</a> <a href="feed.asp?cateID=8" title="订阅该分类内容"><img src="images/rss.png" border="0" style="margin:3px 4px -1px 0px;" alt=""/></a><br/><img src="images/icons/3.gif" border="0" style="margin:3px 4px -4px 0px;" alt=""/><a class="CategoryA" href="default.asp?cateID=12" title="">Tutorial [10]</a> <a href="feed.asp?cateID=12" title="订阅该分类内容"><img src="images/rss.png" border="0" style="margin:3px 4px -1px 0px;" alt=""/></a><br/><img src="images/icons/10.gif" border="0" style="margin:3px 4px -4px 0px;" alt=""/><a class="CategoryA" href="tag.asp" title="">TagsCloud</a><br/></div><div class="Pfoot"></div></div><div id="Side_Comment" class="sidepanel"><h4 class="Ptitle">Recent Comments</h4><div class="Pcontent"> <div class="commentTable"> <a class="sideA" href="article.asp?id=505#comm_377" title="往事 于 2022-09-29 01:46 PM 发表评论 谢谢作者, 好人一生平安。 FlashFXP v5.4.0(build 3955)  -》 FileZilla 3.60.2 成功。">谢谢作者, 好人一生平安。 FlashFXP v...</a><a class="sideA" href="article.asp?id=505#comm_376" title="往事 于 2022-09-29 11:44 AM 发表评论 谢谢作者。 FlashFXP v5.4.0(build 3955)  -》 FileZilla 3.60.2 成功。 几十年以后回看现在,一场闹剧而已。">谢谢作者。 FlashFXP v5.4.0(bu...</a><a class="sideA" href="article.asp?id=505#comm_373" title="knatyao 于 2016-01-25 11:04 PM 发表评论 多谢楼主">多谢楼主</a><a class="sideA" href="article.asp?id=380#comm_372" title="liukof 于 2015-02-22 01:33 AM 发表评论 我的字幕也乱码了 ">我的字幕也乱码了 </a><a class="sideA" href="article.asp?id=456#comm_368" title="fsivanl 于 2014-10-07 01:39 AM 发表评论 工具菜单> Visual Basic>外接程序Addins 这个找不到">工具菜单> Visual Basic>...</a><a class="sideA" href="article.asp?id=456#comm_367" title="fsivanl 于 2014-10-07 00:09 AM 发表评论 后面的14点里,为什么找不到所说的工具菜单项?!">后面的14点里,为什么找不到所说的工具菜单项?!</a><a class="sideA" href="article.asp?id=380#comm_364" title="hiwon 于 2014-07-15 04:02 PM 发表评论 老大,可以开发个批量的么,我的邮箱116268012@qq.com ">老大,可以开发个批量的么,我的邮箱11626801...</a><a class="sideA" href="article.asp?id=360#comm_363" title="KunShan 于 2014-07-09 11:11 AM 发表评论 这个以前必需安装的,现在用上Office 2007,终于不必使用了。">这个以前必需安装的,现在用上Office 2007...</a><a class="sideA" href="article.asp?id=380#comm_357" title="opsx2 于 2013-07-01 09:33 PM 发表评论 能不能支持其他语言啊,碰到日文直接乱码了 ">能不能支持其他语言啊,碰到日文直接乱码了 </a><a class="sideA" href="article.asp?id=380#comm_356" title="asp502010 于 2013-04-15 01:11 PM 发表评论 太强了,简单实用正需要。 找遍了多个强大字幕软件,都没有这样的功能。没想到在这里找到了。 太感谢了,留名~~">太强了,简单实用正需要。 找遍了多个强大字幕软件...</a> </div></div><div class="Pfoot"></div></div><div id="Side_Support" class="sidepanel"><h4 class="Ptitle">Support</h4><div class="Pcontent"><div style="PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; PADDING-TOP: 4px; TEXT-ALIGN: left"> <a href="http://validator.w3.org/check/referer" target="_blank"><img alt="XHTML 1.0 Transitional" src="images/xhtml.png" border="0" /></a> <a href="http://jigsaw.w3.org/css-validator/validator-uri.html" target="_blank"><img alt="Css Validator" src="images/css.png" border="0" /></a> <a href="feed.asp" target="_blank"><img alt="RSS 2.0" src="images/rss2.png" border="0" /></a> <a href="atom.asp" target="_blank"><img alt="Atom 1.0" src="images/atom.png" border="0" /></a> <a href="http://www.mozilla.org/products/firefox/" target="_blank"><img alt="Get firefox" src="images/firefox.gif" border="0" /></a> <a href="http://www.creativecommons.cn/licenses/by-nc-sa/1.0/" target="_blank"><img alt="Creative Commons" src="images/cc.png" border="0" /></a> </div> <div style="text-align:center"><a href="https://curl.qcloud.com/nR1p6ASL" target="_blank">【腾讯云】新客户无门槛2860元代金券限量!</a></div> </div><div class="Pfoot"></div></div> <div id="sidebar-bottomimg"></div> </div> </div> <div style="clear: both;height:1px;overflow:hidden;margin-top:-1px;"></div> </div> <!--底部--> <div id="foot"> <p>Powered By <a href="http://www.pjhome.net" target="_blank"><strong>PJBlog3</strong></a> <a href="http://www.pjhome.net" target="_blank"><strong>V3.2.9.518</strong></a> CopyRight 2005 - 2011, <strong>聊设计|MyStudio Blog</strong> <a href="http://validator.w3.org/check/referer" target="_blank">xhtml</a> | <a href="http://jigsaw.w3.org/css-validator/validator-uri.html">css</a></p> <p style="font-size:11px;">Processed in <b>0.141113</b> second(s) , <b>4</b> queries , <a href="http://www.codefense.cn" target="_blank"><strong>SnowFish</strong></a> Design By <a href="mailto:webmaster@imwebs.com" target="_blank"><strong>CodeFense</strong></a> <a href="http://www.codefense.cn" target="_blank"><img border="0" src="images/detect.gif" alt="Code Detection By Codefense" style="margin-bottom:-2px;height:14px;width:12px"/></a> <br/><!--<a href="http://www.miibeian.gov.cn" style="font-size:12px" target="_blank"><b>苏ICP备05017306号-1</b></a>--> </p> </div> </div> <script type="text/javascript">initAccessKey() //转换AccessKey For IE</script> </body> </html>