十一、用臨時字符串收集輸出是一種好方法嗎?
這個問題來自對本人最近一篇文章的建議。問題的核心是緩沖的使用,以及是否可以使用臨時字符串收集Response.Write的輸出,從而使得Response.Write只需調用一次即可。為測試這個問題,我們修改了ADO_11.asp,在循環中不是每次都用Response.Write輸出,而是把輸出附加到一個字符串的末尾,在全部記錄處理完畢后調用Response.Write輸出這個字符串(STR__01.asp): Dim strTable strTable = ""
'write headings strTable = strTable & "< TABLE BORDER=1 >< TR >" For i = 0 to fldCount-1 strTable = strTable & "< TH >" & fld(i).name & "< /TH >" Next strTable = strTable & "< /TR >"
'write data Do While Not objRS.EOF strTable = strTable & "< TR >" For i = 0 to fldCount-1 strTable = strTable & "< TD >" & fld(i) & "< /TD >" Next strTable = strTable & "< /TR >" objRS.MoveNext Loop
For i = 0 to fldCount-1 Set fld(i) = Nothing Next
strTable = strTable & "< /TABLE >" Response.Write(strTable)
這個結果不能令人滿意。或許我們應該象有些人建議的那樣,先用Space函數為字符串分配一些空間,使得程序不必在每次循環的時候再分配空間(STR__02.asp): Dim strTable strTable = Space(10000) (出處:熱點網絡)
|