我需要用javascript构造一个长字符串。多数民众赞成我试图这样做:
var html = '<div style="balbalblaba"> </div>';
for(i = 1; i <= 400; i++){
html+=html;
};
当我在firefox中执行它时,它会花费很长时间或者让它崩溃。最好的方法是什么?通常在JS中构造大字符串的最佳方法是什么。
有人可以帮助我吗?
答案 0 :(得分:12)
我认为你的意思是html += html;
。
如果你这样做,你的html
字符串的长度将是37×2 400 = 9.5×10 121 ,这超出了任何浏览器的限制,在任何计算机上,任何 [1] 已知的Universe都可以处理。
如果您只想重复该字符串400次,请使用
var res = "";
for (var i = 0; i < 400; ++ i)
res += html;
return res;
或
var res = [];
for (var i = 0; i < 400; ++ i)
res.push(html);
return res.join("");
有关更多选项,请参阅Repeat String - Javascript。
[1]:与“这个宇宙”一样。
答案 1 :(得分:6)
在某些浏览器中,字符串连接非常慢(咳嗽 IE6 *咳嗽*)。加入数组应该比使用连接循环快得多:
var arr = new Array(401);
var html = arr.join('<div style="balbalblaba"> </div>');
答案 2 :(得分:1)
另一种方法是使用Array
创建Array.join('')
次蜇。这实际上是Python构建字符串的方式,但它也适用于JavaScript。
答案 3 :(得分:0)
var src = '<div style="balbalblaba"> </div>';
var html = '';
for(i = 1; i <= 400; i++){
html=+src;
};
你的代码将字符串加倍400倍。