日期:2014-05-16  浏览次数:20389 次

优化string的问题
我命名一个字符串变量
var   str= " ";
然后不停的给这个字符串变量加值,str+= "sssssssssssssssssss "...
如果str的长度已经达到几十万个字符了,
客户端电脑配置太低的话会很慢很慢
如何优化

------解决方案--------------------
meizz曾经提出过一种优化字符串连接的效率的方案,使用Array来存放单个的字符串,而用join( " ")方法最后连接起来,测试代码如下:
--------------------
var time = new Date();
var i = 1000000;
var text = new Array();
while(i--) text.push( "vkcsjqrpoieuwijfodsfdsafdsafdsafa ");
text = text.join( " ");
time = new Date() - time;
alert(time);

这里应100W个循环,加上最后的join操作,共耗时5203MS
----------------------
而如果在这个循环里,改text.push( "fdsafdsafdsafdsaf " + i)这样的话,大概耗时一分钟
而如果你用纯粹的+ 来拼接字符串的话 ,耗时会要多久我不知道,反正我是等了半天,后来结束任务把IE给关了,实在等得受不了了.....