| 
| 技术资料  > ASP技术 > 客户端相关 : asp性能测试第二部分(转)(十一) |  
asp性能测试第二部分(转)(十一) March 25,2004 |  
十一、用临时字符串收集输出是一种好方法吗? 
 
这个问题来自对本人最近一篇文章的建议。问题的核心是缓冲的使用,以及是否可以使用临时字符串收集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) |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved