代碼注釋
當(dāng)制作大型網(wǎng)站時需將相關(guān)的文件統(tǒng)一放入一個文件夾中
例如:news、news_category、news_view放入news文件夾中
前臺:
文件夾命名規(guī)范:
本地圖像:Image
數(shù)據(jù)文件:data(用戶上傳的圖像文件,數(shù)據(jù)庫文件)
Js文件夾:存放所有js數(shù)據(jù)
Css文件夾:存放所有css
Include文件夾:常用asp函數(shù)文件
精簡css :用盡可能少的樣式代碼實現(xiàn)整個網(wǎng)頁的樣式效果
整合css :在網(wǎng)站制作完成后,我們需要把頁面的所有樣式合并大一起以提高網(wǎng)頁的響應(yīng)速度
壓縮css :就是去掉多余的空格和換行。網(wǎng)上有很多工具
在線壓縮:http://pagespeed.webkaka.com/youhua/css/ 或自行查找
外鏈css :于網(wǎng)站排名優(yōu)化來說,css的幾乎沒有任何影響,但往大的方向如網(wǎng)站優(yōu)化來說,樣式表css的優(yōu)化就至關(guān)重要了,其主要作用即是提高網(wǎng)頁的響應(yīng)速度。要盡量使用外鏈css而不要將css寫在文件頁面中 正確做法如下
壓縮js :網(wǎng)上也有很多的工具,請百度查詢“js壓縮工具”即可
在線壓縮:http://pagespeed.webkaka.com/youhua/js/ 或自行查找
外鏈的Css 和 js 應(yīng)放在之中
置底js :等html加載完畢之后才加載js代碼,當(dāng)然,有部分特殊功能的js代碼是沒有辦法放到頁面底部的,具體請根據(jù)實際情況操作。
不要過早優(yōu)化 :正確的方式是,你應(yīng)該將項目開發(fā)和優(yōu)化當(dāng)作兩個獨(dú)立的步驟來做。
Title標(biāo)簽 :每個頁面都必須有且內(nèi)容不同!基本格式為
Meta元素 :關(guān)鍵字,設(shè)定與本頁內(nèi)容相關(guān)的主關(guān)鍵詞一到三個,不要濫用無關(guān)關(guān)鍵字。
描述還是很有用的一個東東了,雖然對于網(wǎng)站的優(yōu)化排名么有多大的影響,但會作為搜索引擎展示網(wǎng)站索引的一個依據(jù),一般60到80字即可
H標(biāo)簽 :h標(biāo)簽一共有六個,分別是h1/h2/h3/h4/h5/h6,分別代表不同的級別,我們稱之為一級標(biāo)題、二級標(biāo)題……當(dāng)然,一級標(biāo)題具備更多的權(quán)重 , 而一篇文章,不可能出現(xiàn)多個一級標(biāo)題,所以h1,在同一個頁面中只能出現(xiàn)一次,而h2等則可以出現(xiàn)多次。
加強(qiáng)和強(qiáng)調(diào):strong被認(rèn)為是“加強(qiáng)”,em被認(rèn)為是“強(qiáng)調(diào)”,這對于網(wǎng)站優(yōu)化至關(guān)重要。我們在優(yōu)化網(wǎng)站時會對關(guān)鍵字進(jìn)行突出,這時使用strong或em。
Alt和title :我們在alt中設(shè)置圖像的描述內(nèi)容 。title則當(dāng)作圖像標(biāo)題來處理。圖像的描述和標(biāo)題如果平設(shè)置成一樣的,這樣會被搜索引擎懲罰!正確格式為:
將圖片合并為CSS貼圖 |
使用CSS sprites合并圖片可減少下載資源,從而減少網(wǎng)頁總體積,增加訪問速度。 |
優(yōu)化圖片 |
使用適當(dāng)?shù)母袷交瘓D片可以減少圖片的字節(jié)數(shù) |
指定字符集 |
指定字符集可以讓瀏覽器立即執(zhí)行腳本,加快瀏覽器的顯示速度。 |
指定圖片大小 |
指定圖片大小可以消除不必要的重繪,從而提高傳送速度。 |
去除錯誤的請求 |
錯誤的請求會增加額外的請求時間,應(yīng)盡量避免。 |
后臺:
代碼安全:
防sql注入:<%
Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx
'---定義部份 頭------
Fy_Cl = 1 '處理方式:1=提示信息,2=轉(zhuǎn)向頁面,3=先提示再轉(zhuǎn)向
Fy_Zx = "index.Asp" '出錯時轉(zhuǎn)向的頁面
'---定義部份 尾------
On Error Resume Next
Fy_Url=Request.ServerVariables("QUERY_STRING")
Fy_a=split(Fy_Url,"&")
redim Fy_Cs(ubound(Fy_a))
On Error Resume Next
for Fy_x=0 to ubound(Fy_a)
Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1)
Next
For Fy_x=0 to ubound(Fy_Cs)
If Fy_Cs(Fy_x)<>"" Then
If Instr(LCase(Request(Fy_Cs(Fy_x))),"'")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"select")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"update")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"chr")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"delete%20from")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),";")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"insert")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"mid")<>0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),"master.")<>0 Then
Select Case Fy_Cl
Case "1"
Response.Write "
"
Case "2"
Response.Write "
"
Case "3"
Response.Write "
"
End Select
Response.End
End If
End If
Next
%>
轉(zhuǎn)換字符,防止sql注入:
Function CheckSql(Str)
If Str = "" Then
CheckSql = ""
Exit Function
End If
Str = Replace(Str,Chr(0),"", 1, -1, 1)
Str = Replace(Str, """", """, 1, -1, 1)
Str = Replace(Str,"<","<", 1, -1, 1)
Str = Replace(Str,">",">", 1, -1, 1)
Str = Replace(Str, "script", "script", 1, -1, 0)
Str = Replace(Str, "SCRIPT", "SCRIPT", 1, -1, 0)
Str = Replace(Str, "Script", "Script", 1, -1, 0)
Str = Replace(Str, "script", "Script", 1, -1, 1)
Str = Replace(Str, "object", "object", 1, -1, 0)
Str = Replace(Str, "OBJECT", "OBJECT", 1, -1, 0)
Str = Replace(Str, "Object", "Object", 1, -1, 0)
Str = Replace(Str, "object", "Object", 1, -1, 1)
Str = Replace(Str, "applet", "applet", 1, -1, 0)
Str = Replace(Str, "APPLET", "APPLET", 1, -1, 0)
Str = Replace(Str, "Applet", "Applet", 1, -1, 0)
Str = Replace(Str, "applet", "Applet", 1, -1, 1)
Str = Replace(Str, "[", "[")
Str = Replace(Str, "]", "]")
Str = Replace(Str, """", "", 1, -1, 1)
Str = Replace(Str, "=", "=", 1, -1, 1)
Str = Replace(Str, "'", "''", 1, -1, 1)
Str = Replace(Str, "select", "select", 1, -1, 1)
Str = Replace(Str, "execute", "execute", 1, -1, 1)
Str = Replace(Str, "exec", "exec", 1, -1, 1)
Str = Replace(Str, "join", "join", 1, -1, 1)
Str = Replace(Str, "union", "union", 1, -1, 1)
Str = Replace(Str, "where", "where", 1, -1, 1)
Str = Replace(Str, "insert", "insert", 1, -1, 1)
Str = Replace(Str, "delete", "delete", 1, -1, 1)
Str = Replace(Str, "update", "update", 1, -1, 1)
Str = Replace(Str, "like", "like", 1, -1, 1)
Str = Replace(Str, "drop", "drop", 1, -1, 1)
Str = Replace(Str, "create", "create", 1, -1, 1)
Str = Replace(Str, "rename", "rename", 1, -1, 1)
Str = Replace(Str, "count", "count", 1, -1, 1)
Str = Replace(Str, "chr", "chr", 1, -1, 1)
Str = Replace(Str, "mid", "mid", 1, -1, 1)
Str = Replace(Str, "truncate", "truncate", 1, -1, 1)
Str = Replace(Str, "nchar", "nchar", 1, -1, 1)
Str = Replace(Str, "char", "char", 1, -1, 1)
Str = Replace(Str, "alter", "alter", 1, -1, 1)
Str = Replace(Str, "cast", "cast", 1, -1, 1)
Str = Replace(Str, "exists", "exists", 1, -1, 1)
Str = Replace(Str,Chr(13),"
", 1, -1, 1)
CheckSql = Replace(Str,"'","''", 1, -1, 1)
End Function
文本編輯器過濾:
Function chgStrHtml(str)
Dim sTemp
sTemp = str
chgStrHtml = ""
If IsNull(sTemp) = True Then
Exit Function
End If
sTemp = Replace(sTemp , "'" , "'")
chgStrHtml = sTemp
End Function
代碼系統(tǒng)性能提高,代碼規(guī)范
在ASP頁面內(nèi),凡是使用CreageObject()創(chuàng)建的對象(Com、Recordset等),對于這些變量,應(yīng)當(dāng)在該頁結(jié)束進(jìn)行對象釋放:即
Set 對象變量名=Nothing
數(shù)據(jù)庫打開以后在不用的時候(通常是本頁最后面),需要對連接進(jìn)行關(guān)閉;
Conn.close
Set conn = nothing
或調(diào)用函數(shù)closeconn
對于SQL語句,存儲過程,盡量避免使用*來取所有字段。
例如:
SELECT name,age,birthday,telephone,address FROM SchoolFellow.Address WHERE name=’xxxx’ ORDER BY birthday DESC
4. * 如果獲得Form中提交的內(nèi)容,必須使用Request.Form(“itemName”).
* 如果獲得QueryString中提交的內(nèi)容,必須使用Request.QueryString(“itemName”)
* 不得在代碼中出現(xiàn)Request(“”)這樣的引用方式 這點很好,必須這樣做,減少服務(wù)器負(fù)擔(dān)。