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[CommandName]。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 %>
* 服務器端腳本標記“<%”同其后的代碼不得在同一行書寫 * “%>”同其前面的代碼不得在同一行書寫 * 服務器端腳本標記”%>”同其最近的”<%”標記對齊 * 服務器端內部的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] ‘必須指定游標類型
|