插入内联HTML或创建新元素是否更快?

时间:2011-12-05 06:48:12

标签: javascript dom prototypejs

我有一个问题,我使用原型,但也许这个问题也适用于本机javascript。

通常运行速度更快,效率更高:

$(divElement).insert('<div>Hello</div');

$(divElement).insert(new Element(div).insert('Hello'));

如何单独创建元素并将其分配给这样的变量:

var helloDiv = '<div>Hello</div>';
$(divElement).insert(helloDiv);

var helloDiv = new Element('div').insert('Hello');
$(divElement).insert(helloDiv);

创建内联HTML比创建元素然后插入更快吗?这些信息对于构建像表格这样的东西尤其有用。

谢谢你,感谢你的帮助。

2 个答案:

答案 0 :(得分:2)

innerHTM L比appendChild

appendChild的优势在于它实际上可以在所有浏览器中正确更新DOM,以便您可以实际读回并更新您添加的标记。

使用innerHTML不会更新所有浏览器中的DOM,因此添加后的内容可能无法在添加后更新(如果您需要这样做)。

答案 1 :(得分:2)

这取决于浏览器,它对于ie和firefox肯定是正确的,但在chrome上似乎更慢: http://jsperf.com/innerhtml-vs-createelement-test