|
比如 <% Dim a(10000),i,t t=Timer For i=0 to 10000 a(i)=CStr(i) Next Response.Write Join(a,vbCrLf) Response.Write timer-t Erase a %>
速度可以和php一拼(虽然还是没有他快) 另一种用法是
s=Join(Array("1","2","3",.....,"9999")) 速度依然比"1" & "2" & "3" & .....& "9999"要快很多
详细测试数据可以看:
//////////////////////////////////////////////////// //{测试用的客户端模版} //////////////////////////////////////////////////// <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD>
<BODY> <Script language="VBScript"> dim t t=timer </script> <!--这儿放服务器测试脚本--> <Script language="VBScript"> document.write "|" & (timer-t) '输出客户端完全接受到所有数据所用的时间 </script> </BODY> </HTML> //////////////////////////////////////////////////// //{测试的各个脚本的代码} //////////////////////////////////////////////////// //-------------------------------------------------- //test-js.asp //使用数组收集所有的字符窜,最后通过join函数连接起来 //-------------------------------------------------- <script language="JavaScript" RunAt="Server"> var i,t,s; var a=new Array(10000); t=(new Date()).getTime(); for(i=0;i<10000;i++){ //s+=String(i)+"\n"; a[i]=String(i); } s=a.join("\n"); Response.Write(s); Response.Write("<br>"+String((new Date()).getTime()-t)); a=null; s=null; </Script> //-------------------------------------------------- //////////////////////////////////////////////////// //-------------------------------------------------- //test-js2.asp //-------------------------------------------------- <script language="JavaScript" RunAt="Server"> var i,t,s=""; t=(new Date()).getTime(); for(i=0;i<10000;i++){ s+=String(i)+"\n"; } Response.Write(s); Response.Write((new Date()).getTime()-t); a=null; s=null; </Script> //-------------------------------------------------- //////////////////////////////////////////////////// //-------------------------------------------------- //test-js3.asp //每得到一个数据,立刻输出到数据流中 //-------------------------------------------------- <script language="JavaScript" RunAt="Server"> var i,t; t=(new Date()).getTime(); for(i=0;i<10000;i++){ Response.Write(i+"\n");
} Response.Write("<br>"); Response.Write((new Date()).getTime()-t); </Script> //-------------------------------------------------- //////////////////////////////////////////////////// //-------------------------------------------------- //test-js3.asp //这个程序通过建立零时文件,并将所有内容输入到文件中,最后统一输出 //建立零时文件所用的组件是FSO //-------------------------------------------------- <script language="JavaScript" RunAt="Server"> var i,t; t=(new Date()).getTime(); var fso=Server.CreateObject("Scripting.FileSystemObject");//建立fso对象 var f=fso.CreateTextFile(Server.MapPath("temp.txt"),true);//通过fso对象创建一个零时文件 for(i=0;i<10000;i++){ f.WriteLine(i); } f.Close(); f=fso.OpenTextFile(Server.MapPath("temp.txt"),1); Response.Write(f.ReadAll());//读出零时文件的内容 f.Close(); f=null; fso=null; Response.Write("<br>"); Response.Write((new Date()).getTime()-t); </Script> //-------------------------------------------------- //////////////////////////////////////////////////// //-------------------------------------------------- //test-js5.asp //这个程序通过建立零时文件,并将所有内容输入到文件中,最后统一输出 //建立零时文件所用的组件是Adodb.Stream //-------------------------------------------------- <script language="JavaScript" RunAt="Server"> var i,t; t=(new Date()).getTime(); var ado=Server.CreateObject("ADODB.Stream"); ado.Mode=3;//设置为可读可写 ado.Type=2;//设置内容为文本 ado.Open(); for(i=0;i<10000;i++){ ado.WriteText(i+"\n"); } ado.SaveToFile(Server.MapPath("temp.txt"),2);//保存一下,才可以读取 Response.Write(ado.ReadText(-1)); ado.Close(); ado=null; Response.Write("<br>"); Response.Write((new Date()).getTime()-t); </Script> //-------------------------------------------------- //test-vbs.asp //这个程序使用数组收集所有的字符窜,最后通过join函数连接起来 //对应于test-js.asp //-------------------------------------------------- <% dim i,a(9999),t t=timer For i=0 to 9999 a(i)=CStr(i) Next s=Join(a,vbCrLf) Response.Write s Response.Write "<Br>" & CSTR(timer-t) Erase a s="" %> //-------------------------------------------------- //test-vbs2.asp //使用一个零时的字符窜变量收集内容,最后输出 //对应于test-js2.asp //-------------------------------------------------- <% dim i,j,s,t t=timer for i=0 to 9999 s=s & CStr(i) & vbCrLf next response.write s s="" response.write "<BR>"&(timer-t) %> //-------------------------------------------------- //////////////////////////////////////////////////// //-------------------------------------------------- //test-vbs3.asp //每得到一个数据,立刻输出到数据流中 //-------------------------------------------------- <% dim i,j,s,t t=timer for i=0 to 9999 response.write CStr(i) & vbCrLf next response.write "<BR>"&(timer-t) %> //-------------------------------------------------- //////////////////////////////////////////////////// //-------------------------------------------------- //test-vbs4.asp //这个程序通过建立零时文件,并将所有内容输入到文件中,最后统一输出 //建立零时文件所用的组件是FSO //对应于test-js4.asp //-------------------------------------------------- <% dim i,t,fso,f t=timer Set fso=Server.CreateObject("Scripting.FileSystemObject") Set f=fso.CreateTextFile(Server.MapPath("temp.txt"),true) for i=0 to 9999 f.WriteLine CStr(i) next f.Close Set f=fso.OpenTextFile(Server.MapPath("temp.txt"),1) Response.Write f.ReadAll f.Close Set f=Nothing Set fso=Nothing response.write "<BR>"&(timer-t) %> //-------------------------------------------------- //////////////////////////////////////////////////// //-------------------------------------------------- //test-vbs5.asp //这个程序通过建立零时文件,并将所有内容输入到文件中,最后统一输出 //建立零时文件所用的组件是Adodb.Stream //对应于test-js5.asp //-------------------------------------------------- <% dim i,t,ado t=timer Set ado=Server.CreateObject("ADODB.Stream") ado.Mode=3'设置为可读可写 ado.Type=2'设置内容为文本 ado.Open for i=0 to 9999 ado.WriteText CStr(i)&vbCrLf next ado.SaveToFile Server.MapPath("temp.txt"),2 '保存一下,才可以读取 Response.Write ado.ReadText()'读出全部内容,写入传送流 ado.Close Set ado=Nothing response.write "<BR>"&(timer-t) %>
{测试数据统一使用0到9999的一万个数据,每个数据后追加一个回车,通过各种途径输出到客户端屏幕,得出所需时间} {以下是测试结果} {测试结果的格式:服务器段测试结果|客户端测试结果}
<Celeron 466MHz 256MB SDRAM> [Windows98SE PWS 4.0] [InternetExplorer 6.0 Service Park 1] //test-js.asp(单位:毫秒|秒) //ASP using JavaScript and Array Join {JavaScript使用数组收集每一个测试数据,最后用join连接并输出,速度非常快} 390 |.0546875 440 |.0546875 4
|