Response.Write和<%=%>都是ASP程序向客戶端輸出字符串的方法,雖然兩者的結(jié)果相同但是其效果是不同的。一般的來(lái)說(shuō)我們大部分時(shí)間將<%=%>用于HTML與ASP代碼相混合的狀態(tài)下,而Response.Write用于<% %>腳本段中,但從VBScript語(yǔ)法<%=expression%>將“表達(dá)式”的值寫入ASP輸出流來(lái)分析這個(gè)方法可以發(fā)現(xiàn):如果響應(yīng)緩沖沒(méi)有打開(kāi),則這些語(yǔ)句的每一句都會(huì)導(dǎo)致通過(guò)網(wǎng)絡(luò),以許多小型包的形式,向?yàn)g覽器寫入數(shù)據(jù)。這是非常慢的。另外,解釋少量腳本和HTML,將導(dǎo)致在腳本引擎和HTML之間的切換,也降低了性能。因此,對(duì)于Response.Write的一個(gè)調(diào)用,替換內(nèi)嵌的密集組合表達(dá)式在應(yīng)用程序的性能上可以得到很大的提高。一般來(lái)講,我們通常使用以下語(yǔ)句顯示數(shù)據(jù)庫(kù)內(nèi)容:
<% do while not rs.eof %>
<%= rs("flides")%>
<% loop %>
但不如一下語(yǔ)句執(zhí)行速度快:
<% OUT_str=""
for i = 1 to rs.recodecount
OUT_str=OUT_str+rs("flides")
rs.movenext
next
Response.Write( OUT_str )
%>
另外,將例子中的語(yǔ)句:
for i = 1 to rs.recodecount
替換為:
do while not rs.eof
也是一則技巧,其有用之處在于避免了在每個(gè)循環(huán)中檢測(cè)rs.eof的數(shù)值而用拘束循環(huán),效率 可以進(jìn)一步提高。
更多信息請(qǐng)查看IT技術(shù)專欄