我正在为我的文档写一长串数字,一次一个。 document.write()处理这个很好,但是使用带有<div>
元素的innerHTML是缓慢的,而且很快就会崩溃我的标签。有没有办法将文本插入到<div>
元素中,与document.write一样快?
答案 0 :(得分:3)
这是基于弗拉德的想法应该尽可能快的一种方式:
var arrData = [];
for (var i = 0; i <= 5000; i++)
arrData.push(i);
var oDiv = document.getElementById("Output");
oDiv.innerHTML = arrData.join(", ");
不是追加到字符串或慢速的innerHTML
,而是附加到数组,然后使用join
从字符串中获取字符串。以上示例将向输出div中输入5000个数字,使用oDiv.innerHTML += i + ", ";
此处提供实时测试用例:http://jsfiddle.net/yahavbr/mKx35/
答案 1 :(得分:1)
一次显示结果至关重要吗?您可以将它们一次写入一个字符串中,然后使用innerHTML将其刷新到div中。
答案 2 :(得分:1)
cloneNode
和appendChild
在现代浏览器上速度非常快。
如果JS花了太长时间考虑使用队列和计时器事件(例如setInterval
)定期“产生”控制并防止“脚本超时”错误。
也许有更好的方法来处理这种情况 - 有多少div和为什么?
答案 3 :(得分:0)
你可以尝试 node.textContent =“foo”,但我不确定它会多快多少,假设它不慢。