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></div><div>    必须同其关闭标记同时出现。如</div><div>    <body>…<p>…<font>….</font>….</p>…..</body></div><div>  * 不得出现交叉包含的语句,如:</div><div>  <p><font>…..</p></font></div><div>  1.3 标记的属性赋值规范</div><div>    对于接受属性的标记,属性值必须使用双引号或者单引号包围。如:</div><div>    <body bgcolor=”red”></div><div>    <font size=’7’></div><div>  1.4 标记的缩进规范</div><div>  * 最高一级的父标记采用左对齐顶格方式书写。</div><div>  * 下一级标记采用左对齐向右缩进一个Tab的方式书写</div><div>    在下一级依此类推,分别左对齐相对于父标记向右缩进一个Tab的方式书写</div><div>  * 同一级标记的首字符上下必须对齐。</div><div>  2. 客户端Javascript规范</div><div>  2.1 变量命名规范</div><div>  * 常量以及全局变量名必须全部使用大写字母</div><div>  * 变量名首字母必须小写。</div><div>  * 变量名必须使用其类型的所写字符串开始。各种类型的所写字符串如下:</div><div>  * 整型变量:int</div><div>  * 长整型变量:lng</div><div>  * 浮点型变量:flt</div><div>  * 双精度变量:dbl</div><div>  * 对象引用变量:obj</div><div>  * 字符串变量:str</div><div>  * Date类型变量:dtm</div><div>  * 变量名必须采用有意义的单词命名,如:</div><div>  strUserName、lngArrayIndex</div><div>  * 变量名除首字母小写外,其他单词首字符必须大写</div><div>  * 如果变量名过长可以使用单词缩写,除了被广泛了解的单词缩写以外,所有使用单词所写的变量名必须在定义时给出注释,如:</div><div>  var strAdName //用于表示Administrator帐户的名称</div><div>  var strAdminName //不用给出注释,Admin被广泛了解</div><div>  2.2 变量使用规范</div><div>  * 变量使用前必须定义。没有定义的变量禁止使用</div><div>  * 变量的使用尽量缩小到小的作用域。如循环使用</div><div>  for(var I=0;I<12;I++){</div><div><br></div><div>}</div><div>  而不是:</div><div>  var I;</div><div>  for(I=0;I<12,I++){</div><div><br></div><div>}</div><div>  2.3 对象命名规范</div><div>  各种页面对象如text输入框、按钮、下拉选择框在命名时必须使用以下对应前缀:</div><div>  * text输入框:txt</div><div>  * button按钮:btn</div><div>  * select下拉选择框:sel</div><div>  * option项:opt</div><div>  * form表单:frm</div><div>  * frame框架:fra</div><div>  * hidden表单项:hdn</div><div>  * div标记:div</div><div>  * span标记:span</div><div>  * 对话框对象:dlg</div><div>  * 窗口对象:win</div><div>  2.4 函数以及子过程命名规范</div><div>  * 函数命名必须使用动词+名词对的方式,并且能够体现函数的功能</div><div>  * 函数命名的动词前缀必须是同函数功能相关的完整动词</div><div>  * 函数命名第一个单词的首字母小写,后面每一个单词的首字母大写</div><div>  第三章 动态文件编码规范</div><div>  1. HTML书写规范</div><div>    HTML书写规范必须符合静态文件HTML标记书写规范,参考(第二章第一节)</div><div>  2. 客户端脚本规范</div><div>    动态文件客户端脚本一律采用Javascript书写,并必须符合静态文件编码规范中有关Javascript编码规范的规定(参考第二章第二节)</div><div>  3. 服务器端脚本书写规范</div><div>    服务器端脚本书写采用VBscript书写</div><div>  3.1 命名规范</div><div>  3.1.1 VBscript脚本变量命名规范</div><div>  * 常量以及全局变量必须全部使用大写字母</div><div>  * 常量必须使用CONST_前缀</div><div>  * 全局变量必须使用G_前缀</div><div>  * 变量名首字母必须小写。</div><div>  * 变量名必须使用其类型的所写字符串开始。各种类型的所写字符串如下:</div><div>  * 整型变量:int</div><div>  * 长整型变量:lng</div><div>  * 浮点型变量:flt</div><div>  * 双精度变量:dbl</div><div>  * 对象引用变量:obj</div><div>  * 字符串变量:str</div><div>  * Date类型变量:dtm</div><div>  * 变量名必须采用有意义的单词命名,如:</div><div>  strUserName、lngArrayIndex</div><div>  * 变量名除首字母小写外,其他单词首字符必须大写</div><div>  * 如果变量名过长可以使用单词缩写,除了被广泛了解的单词缩写以外,所有使用单词所写的变量名必须在定义时给出注释,如:</div><div>  dim strAdName ‘用于表示Administrator帐户的名称</div><div>  dim strAdminName ‘不用给出注释,Admin被广泛了解</div><div>    </div><div>  3.1.2 对象命名规范</div><div>  各种对象如Connection、Recordset、Command在命名时必须使用以下对应前缀:</div><div>  * Connection对象:conn</div><div>  * Recordset对象:rs</div><div>  * Command对象:cmd</div><div>  * Parameter对象:param</div><div>  * Field对象:fld</div><div>  * Error对象:err</div><div>  3.1.3 函数以及子过程命名规范</div><div>  * 函数命名必须使用动词+名词对的方式,并且能够体现函数的功能</div><div>  * 函数命名的动词前缀必须是同函数功能相关的完整动词</div><div>  * 函数命名第一个单词的首字母大写,后面每一个单词的首字母大写</div><div>  3.1.4 常用变量命名规范:</div><div>    说明:包含在[>中的部分为可省略部分</div><div>  * Connection对象:conn[Name>。Name为所连接数据库的服务器名字</div><div>  * Recordset变量命名规范:rs[Name>。Name为自定义的同rs存储内容有关的英文单词组合</div><div>  * Command对象:cmd[Name>。Name为自定义的同command目的有关的英文单词组合</div><div>  * SQL语句字符串变量:strSql[CommandName>。CommandName为自定义的同Sql语句功能相关的英文单词组合,如:</div><div>  strSqlUpdateModify</div><div>  strSqlInsertUser</div><div>  3.2 代码书写规范</div><div>  3.2.1 变量明确声明原则</div><div>  * 所有ASP程序文件,必须在代码的第一行包含<%option explicit%>。转为变量明确声明模式</div><div>  3.2.2 字符集设定原则</div><div>  * 所有将对客户端产生中文输出的ASP程序文件,必须在输出前设定Charset为”GB2312”.如:Response.Charset = “GB2312”</div><div>  3.2.3 函数使用原则</div><div>  * 尽量使用函数封装代码块</div><div>  * 连续代码块尽量不要超过50行。最多不得超过70行</div><div>  * 尽量使用局部变量。</div><div>  * 如有涉及到全局的资源,如Connection,尽量作为函数的参数传入</div><div>  * 所有在函数内部创建打开的资源,在退出函数前必须关闭释放。如:Recordset,Command</div><div>  3.2.4 Request、Session、Application使用规范</div><div>  * 所有需要放入Session、Application中的对象,必须采用有意义的英文名字。除了被广泛了解的单词缩写以外,不得采用单词缩写。如:</div><div>  Session(“cp”) = strCurrentUserIP ‘不允许</div><div>  Session(“CurrentUserIP”) = strCurrentUserIP</div><div>  Session(“Pwd”) = strPwd ‘允许,Pwd被广泛了解为密码</div><div>  * 所有需要在代码内用到的Request、Session、Application中的元素,必须在代码头部赋值给代码内声明的变量。</div><div>  * 如果获得Form中提交的内容,必须使用Request.Form(“itemName”).</div><div>  * 如果获得QueryString中提交的内容,必须使用Request.QueryString(“itemName”)</div><div>  * 不得在代码中出现Request(“”)这样的引用方式</div><div>  3.2.5 HTML同服务器端脚本混合使用原则</div><div>  * 服务器端脚本标记“<%”必须同其上一行紧邻的标记左对齐,如:</div><div>  <table></div><div>  <% </div><div>  do while not rs.eof </div><div>  %></div><div>   <tr></div><div>   <td>text</td></div><div>   </tr></div><div>  <%</div><div>   rs.movenext</div><div>   loop</div><div>  %></div><div>  </table></div><div>  * 服务器端脚本标记“<%”同其后的代码不得在同一行书写</div><div>  * “%>”同其前面的代码不得在同一行书写</div><div>  * 服务器端脚本标记”%>”同其最近的”<%”标记对齐</div><div>  * 服务器端内部的HTML代码依据静态文件的HTML缩进规则编写,不遵循服务器端脚本缩进规则</div><div>  * HTML标记内部的代码,依据服务器端脚本的缩进规则,不遵循HTML代码缩进规则</div><div><br></div><div>第四章 常见错误</div><div>  1. ADO的事务处理</div><div>  1.1 错误代码:80004005。</div><div>  1.1.1 错误描述:</div><div>    Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' </div><div>    不能在 firehose 方式下启动事务 </div><div>  1.1.2 解决方法:</div><div>    在开始ADO的事务的时候,必须首先关闭使用同一个连接对象打开的记录集,或者在打开那些游标集之前,设置游标集位置类型为adUseClient.(使用客户端游标集)</div><div>    </div><div>  第五章 代码习惯书写示例</div><div>  1. ADO对象的使用</div><div>  1.1 ADODB.Connection对象</div><div>  1.2 ADODB.Command对象</div><div>  1.3 ADODB.Recordset对象</div><div>  1.3.1 创建:</div><div>    Set rs = Server.CreateObject(“ADODB.Recordset”)</div><div>    rs.CursorLocation = adUseClient</div><div>    rs.Open strSql,conn,1[,1> ‘必须指定游标类型 </div><div>文章出处:DIY部落(http://www.diybl.com/course/4_webprogram/asp.net/netjs/20090318/163080.html)</div> <div></div> </div> </div> <!-- m3 END --> <div class="page"> <ul class="clearfix m01"> <li> <a href="/12639172/viewspace-616550/">让IE8自动使用兼容模式显示网页的方法</a> </li> <li> <a href="/12639172/viewspace-616639/">简要介绍VB System.Array类及其成员</a> </li> </ul> </div> </div> <footer> <a href="http://www.itpub.net">ITPUB论坛</a> | <a href="http://blog.chinaunix.net/">chinaunix博客</a> | <a href="http://bbs.chinaunix.net/">chinaunix论坛</a><br> 北京皓辰网域网络信息技术有限公司. 版权所有 </footer> <script> $(function(){ $("#fenlei").click(function(){ $("#left_1").show(); $("#left_2").show(); }); }) </script> </body> </html> <script language="javascript" src="http://stat.it168.com/pv.js"></script> <script> function sendPV(){ var pvTrack = new PvTrack(); pvTrack.type = 35; // 频道类别ID pvTrack.channel = 532; // 频道ID pvTrack.pageType = 0; pvTrack.track(); } window.setTimeout("sendPV()", 1000); </script> <div class="share_box"> <div class="share"> <div class="share_tit">分享到</div> <div class="share_close"></div> <ul class="share_list"> <a href="http://service.weibo.com/share/share.php?url=http://m.blog.itpub.net/12639172/viewspace-616551/&appkey=&title=ASP编码规范&language=zh_cn"><li><span class="weibo">新浪微博</span></li></a> <a href="http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=http://m.blog.itpub.net/12639172/viewspace-616551/&title=ASP编码规范&desc=第一章 ASP编码规范通述    ASP编码分为两大部分,一部分为静态文件编码,一部分为包含服务器端脚本的动态文件编码。    静态文件编码分script编码和HTML编码两部分。    服务器端编码则分为服务器脚本...&summary=&site=&pics="><li><span class="qq"> QQ空间</span></li></a> </ul> <div class="weixin2"> <em></em> <i>请使用浏览器的分享功能分享到微信等</i></div> </div> </div> <script> $(".fenxiang").click(function(){ $(".share_box").show(); }); $(".share_close").click(function(){ $(".share_box").hide(); }); $(".backTop").click(function(){ $('html,body').animate({ scrollTop: 0 }, 300) }) $('.content p br').parents('p').each(function (k,v) { if ($(v).html() == '') { $(v).css('display','none') } }) </script> <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script> var videoContainer = {}; $(document).delegate('.fake-video-btn', 'click', function () { var width = $(this).parent('.video-container').width(); var height = $(this).parent('.video-container').height(); var $this = $(this); var videoid = $(this).data('videoid'); var aliplayerid = $this.closest('.video-container').attr('id'); $.ajax({ url: 'http://blog.itpub.net/getvidoeinfo?videoid=' + videoid , type: 'get' , success: function (ret) { if (ret.code == 200) { videoContainer[videoid] = new Aliplayer({ id:aliplayerid, autoplay:true, width:width + 'px', height:height + 'px', format: "", vid:videoid, playauth:ret.data.PlayAuth, cover:ret.data.VideoMeta.CoverURL, skinLayout:[ //按钮UI {name:"bigPlayButton","align":"cc","x":15,"y":12},//播放 {name: "H5Loading", align: "cc"}, {name: "errorDisplay", align: "tlabs", x: 0, y: 0}, {name: "infoDisplay"}, {name:"tooltip", align:"blabs",x: 0, y: 56}, {name: "thumbnail"}, { name: "controlBar", align: "blabs", x: 0, y: 0, children: [ {name: "progress", align: "blabs", x: 0, y: 44}, {name: "playButton", align: "tl", x: 15, y: 12}, {name: "timeDisplay", align: "tl", x: 10, y: 7}, {name: "fullScreenButton", align: "tr", x: 10, y: 12}, {name:"subtitle", align:"tr",x:15, y:12}, {name:"setting", align:"tr",x:15, y:12}, {name: "volume", align: "tr", x: 5, y: 10} ] } ] },function(player){ $this.siblings('img').remove(); $this.remove(); player.on('play',function(e) { for (var key in videoContainer) { if (videoid != key) { videoContainer[key].pause(); } } }); }); } else { alert(ret.msg); } } }) }); wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: 'wx4d058320abe98d01', // 必填,公众号的唯一标识 timestamp: 1788209142, // 必填,生成签名的时间戳 nonceStr: 'Xy0fpJyp70nxCqfA', // 必填,生成签名的随机串 signature: '9c7a96097b851e80754edf1ce151bab8ee242a7e',// 必填,签名,见附录1 jsApiList: [ 'onMenuShareTimeline', 'onMenuShareAppMessage' ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 var title = 'ASP编码规范'; var desc = ""; var link = 'http://m.blog.itpub.net/12639172/viewspace-616551/'; var imgUrl = $(".main img:first").attr('src'); if(!imgUrl){ imgUrl = 'http://m.blog.itpub.net/static/images/share.png?v1'; } console.log(imgUrl); wx.onMenuShareAppMessage({ //分享给朋友 title: title, // 分享标题,可在控制器端传递 desc: desc,//分享的描述,可在控制器端传递 link: link, // 分享链接,可在控制器端传递 imgUrl: imgUrl, // 分享图标 ,可在控制器端传递 success: function() {}, cancel: function() {} }); wx.onMenuShareTimeline({ //分享到朋友圈 title: title, // 分享标题,可在控制器端传递 desc: desc,//分享的描述,可在控制器端传递 link: link, // 分享链接,可在控制器端传递 imgUrl: imgUrl, // 分享图标 ,可在控制器端传递 success: function() {}, cancel: function() {} }); }); </script> </body> </html>