結論
本文第一部分的重要之處在于許多小事情的累積。為了強調這個(gè)問(wèn)題,我設置了最后一個(gè)測試,在其中進(jìn)行了我們以前曾經(jīng)測試過(guò)的看來(lái)無(wú)所謂但實(shí)際上有壞影響的所有操作。我包含了許多Response.Write 聲明、關(guān)閉了緩沖器、設置了默認語(yǔ)言、去掉了Option Explicit 引用并初始化了錯誤句柄。
< %@ LANGUAGE=VBSCRIPT % >
< %
On Error Resume Next
FirstName = "John"
…
BirthDate = "1/1/1950"
Response.Write("< html >")
Response.Write("< head >")
Response.Write(" < title >Response Test< /title >")
Response.Write("< /head >")
Response.Write("< body >")
Response.Write("< h1 >Response Test< /h1 >")
Response.Write("< table >")
Response.Write("< tr >< td >< b >First Name:< /b >< /td >< td >" & FirstName & "< /td >< /tr >")
…
Response.Write("< tr >< td >< b >Birth Date:< /b >< /td >< td >" & BirthDate & "< /td >< /tr >")
Response.Write("< /table >")
Response.Write("< /body >")
Response.Write("< /html >")
% >
/app2/final_1.asp片段
基準值 = 5.57 msec/page
反應時(shí)間 = 8.85 msec/page
差 = +3.28 msec (58.9% 增加)
聽(tīng)起來(lái)可能很明顯,但是理解更重要,那就是我們放置在頁(yè)面上的代碼會(huì )對性能有影響。頁(yè)面上的小變化有時(shí)會(huì )大大地增加反應時(shí)間。
規則概括
* 避免內聯(lián)ASP的過(guò)多使用。
* 總是將連續Response.Write 語(yǔ)句連接進(jìn)一個(gè)單獨語(yǔ)句內。
* 永遠不要在Response.Write 周?chē)褂冒b函數以附加CRLF。
* 如果必須格式化HTML輸出,直接在Response.Write 語(yǔ)句內附加CRLF。
* 總是通過(guò)服務(wù)器設置開(kāi)啟緩沖器。
* 只要使用適度,ASP注釋對性能的影響很小或根本沒(méi)有影響。
* 設置服務(wù)器的默認語(yǔ)言配置以與站點(diǎn)上使用的語(yǔ)言相匹配。
* 除非你使用非默認語(yǔ)言,不要設置語(yǔ)言聲明。
* 在VBScript中總是使用Option explicit 。
* 在不需要的情況下,總是在頁(yè)面或應用程序的水平上關(guān)閉Session狀態(tài)。
* 只有當代碼在頁(yè)面之間共享時(shí)才使用Include 文件。
* 在一個(gè)頁(yè)面上,如果代碼要使用一次以上,就將代碼封入函數區。
* 適當時(shí)候,將變量聲明移到函數范圍內。
* 只有會(huì )發(fā)生超出測試或控制能力之外的情況時(shí)才使用錯誤句柄。
* 只有當兩個(gè)或更多操作被作為一個(gè)單元執行時(shí),才使用上下文處理。
現在回顧一下,有許多問(wèn)題可以作為普遍性的方針:
* 避免冗余--不要設置那些默認狀態(tài)下已經(jīng)設置的屬性。
* 限制函數調用的次數。
* 縮小代碼的范圍。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。