日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

ASP優(yōu)化:幾招提高ASP性能的最佳選擇(2)_ASP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:馬克斯電影站生成Rss Feed的代碼
前段時(shí)間為了給本人的電影站增加Rss訂閱功能,動(dòng)手寫了個(gè)動(dòng)態(tài)生成Rss Feed的ASP代碼,沒法上傳附件,就直接貼代碼吧,反正也不長(zhǎng),用馬克斯做電影站的朋友直接拿去用吧,其它類型的站點(diǎn)修改一下

使用包裝函數(shù)

當(dāng)我們?cè)噲D使用Response.Write 語(yǔ)句這種方法時(shí),最令人灰心的發(fā)現(xiàn)可能就是Response.Write 函數(shù)不能在每行的結(jié)尾處放置一個(gè)CRLF 。因此,當(dāng)你從瀏覽器中閱讀源代碼時(shí),本來布置得非常好的HTML,現(xiàn)在成了沒有結(jié)束的一行。我想,你的下一個(gè)發(fā)現(xiàn)可能會(huì)更令你恐怖:在Response 對(duì)象中沒有其姊妹函數(shù)Writeln 。所以,一個(gè)很明顯的反應(yīng)就是為Response.Write 函數(shù)創(chuàng)建一個(gè)包裝函數(shù),以便給每一行都附加一個(gè)CRLF 。

 …
writeCR("<tr><td><b>First Name:</b></td><td>" & FirstName & "</td></tr>")

SUB writeCR(str)
Response.Write(str & vbCRLF)
END SUB
/app1/response4.asp的片段
以前的最佳(反應(yīng)速度)= 8.08 msec/page
反應(yīng)時(shí)間= 10.11 msec/page
差 = 2.03 msec (增加 25.1%)

當(dāng)然,由于這種方法有效地使函數(shù)調(diào)用次數(shù)加倍,其對(duì)性能的影響也很明顯,因此要不惜一切代價(jià)避免。具有諷刺意味的是CRLF也向反應(yīng)流中為每行增加了2個(gè)字節(jié),而這是瀏覽器不需要呈現(xiàn)到頁(yè)面上的。格式化良好的HTML所做的一切就是讓你的競(jìng)爭(zhēng)者更容易閱讀你的HTML源代碼并理解你的設(shè)計(jì)。

將連續(xù)的Response.Write 連接到一個(gè)單獨(dú)語(yǔ)句中

不考慮我們前面用包裝函數(shù)進(jìn)行的測(cè)試,下一個(gè)合乎邏輯的步驟就是從單獨(dú)的Response.Write 語(yǔ)句中提取出所有的字符串,將它們連接到一個(gè)單獨(dú)語(yǔ)句中,這樣就減少了函數(shù)調(diào)用的次數(shù),極大地提高了頁(yè)面的性能。


Response.Write("<html>" & _
"<head>" & _
"<title>Response Test</title>" & _
"</head>" & _
"<body>" & _
"<h1>Response Test</h1>" & _
"<table>" & _
"<tr><td><b>First Name:</b></td><td>" & FirstName & "</td></tr>" & _

"<tr><td><b>Birth Date:</b></td><td>" & BirthDate & "</td></tr>" & _
"</table>" & _
"</body>" & _
"</html>")


/app1/response3.asp的片段

以前的最佳(反應(yīng)速度)= 8.08 msec/page

反應(yīng)時(shí)間 = 7.05 msec/page

差 = -1.03 msec (減少12.7%)

目前,這是最優(yōu)化的配置。

將連續(xù)的Response.Write 連接到一個(gè)單獨(dú)語(yǔ)句中,在每行結(jié)尾處增加一個(gè)CRLF

考慮到那些要求他們的源代碼從瀏覽器中看要很純粹的人,我用vbCRLF 常量在前面測(cè)試中每行的結(jié)尾處插入了一些回車,然后重新運(yùn)行。


Response.Write("<html>" & vbCRLF & _
"<head>" & vbCRLF & _
" <title>Response Test</title>" & vbCRLF & _
"</head>" & vbCRLF & _


/app1/response5.asp的片段

前面的最佳(反應(yīng)速度)= 7.05 msec/page

反應(yīng)時(shí)間= 7.63 msec/page

差 = 0.58 msec (增加 8.5%)

運(yùn)行的結(jié)果在性能上有一點(diǎn)降低,這也許是由于額外的串聯(lián)和增加的字符量。

回顧和觀測(cè)

從前面有關(guān)ASP輸出的測(cè)試中可以得出一些規(guī)則:

* 避免內(nèi)聯(lián)ASP的過多使用。

* 總是將連續(xù)Response.Write 語(yǔ)句連接進(jìn)一個(gè)單獨(dú)語(yǔ)句內(nèi)。

* 永遠(yuǎn)不要在Response.Write 周圍使用包裝函數(shù)來附加CRLF。

* 如果必須格式化HTML輸出,直接在Response.Write 語(yǔ)句內(nèi)附加CRLF。

是否應(yīng)該開啟緩沖器?

通過腳本程序啟動(dòng)緩沖器
在ASP腳本的頂部包含Response.Buffer=True ,IIS就會(huì)將頁(yè)面的內(nèi)容緩存。

<% OPTION EXPLICIT
Response.Buffer = true
Dim FirstName

/app1/buffer__1.asp的片段

以前的最佳(反應(yīng)時(shí)間)= 7.05 msec/page
反應(yīng)時(shí)間 = 6.08 msec/page
差= -0.97 msec (降低13.7%)

性能得到了極大提高。但是等等,還能有更好的。

通過服務(wù)器配置啟動(dòng)緩沖器

雖然在IIS 5.0中緩沖器是被默認(rèn)啟動(dòng)的,但是在IIS 4.0中還必須手動(dòng)來啟動(dòng)它。這時(shí)要找到站點(diǎn)的Properties 對(duì)話框,在那里,從Home Directory 標(biāo)簽中選擇配置按鈕。然后在"App options"下選擇"enable buffering" 。對(duì)于這個(gè)測(cè)試,Response.Buffer 語(yǔ)句從腳本中被移走了。

以前的最佳= 7.05 msec/page
反應(yīng)時(shí)間 = 5.57 msec/page
差= -1.48 msec (降低 21.0%)

目前,這是我們所得到的最快反應(yīng)了,比我們以前最好情況下的反應(yīng)時(shí)間還要降低21%。從現(xiàn)在開始,我們以后的測(cè)試都要把這個(gè)反應(yīng)時(shí)間作為基準(zhǔn)值。

分享:ASP 編程中20個(gè)非常有用的例子(一)
1、如何用Asp判斷你的網(wǎng)站的虛擬物理路徑 答:使用Mappath方法:< %= Server.MapPath("")% > 2、我如何知道使用者所用的瀏覽器? 答:使用the Request object方法:

來源:模板無憂//所屬分類:ASP教程/更新時(shí)間:2008-08-22
相關(guān)ASP教程