使用javascript将文本插入<div>元素的最快方法是什么?</div>

时间:2011-01-23 05:16:42

标签: javascript html innerhtml

我正在为我的文档写一长串数字,一次一个。 document.write()处理这个很好,但是使用带有<div>元素的innerHTML是缓慢的,而且很快就会崩溃我的标签。有没有办法将文本插入到<div>元素中,与document.write一样快?

4 个答案:

答案 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 + ", ";

执行此操作需要2毫秒而不是2.5秒

此处提供实时测试用例:http://jsfiddle.net/yahavbr/mKx35/

答案 1 :(得分:1)

一次显示结果至关重要吗?您可以将它们一次写入一个字符串中,然后使用innerHTML将其刷新到div中。

答案 2 :(得分:1)

cloneNodeappendChild在现代浏览器上速度非常快。

如果JS花了太长时间考虑使用队列和计时器事件(例如setInterval)定期“产生”控制并防止“脚本超时”错误。

也许有更好的方法来处理这种情况 - 有多少div和为什么

答案 3 :(得分:0)

你可以尝试 node.textContent =“foo”,但我不确定它会多快多少,假设它不慢。