将元素添加为字符串与createElement()

Ruf*_*ffy 7 javascript performance innerhtml createelement

为了什么我要完成,我可以使用createElement()innerHTML与一个字符串.

到底哪个真的更快?很长一段时间以来,我一直认为字符串比返回相同结果的内置函数慢得多,但这是真的吗?

我问,因为我已经尝试过createElement(),似乎所有必须添加到每个元素的属性都会减慢速度.不仅如此,它也占用了更多的空间.我有一个循环,根据数组的长度从1-infinity到任何地方,但最好在显示减速迹象之前添加多达50个左右的元素.在我想要创建的这50个元素中,大约有10个元素.所以,总的来说,它实际上创造了大约500个元素.

通过创建具有内置函数的元素,我注意到比平时更快的减速,并且由于我无意中重置该数组(数组是5D并且未在同一脚本中设置),我想知道哪个在完成任务之前,无论是速度还是简单的更好的练习,都是真的更好.

nnn*_*nnn 5

此问题的性能差异因浏览器和(有时)在任何一个浏览器的不同版本之间而异,我看过一些不同的文章就此问题提供了不同的建议.

根据我自己的经验,我只记得有一次,我真的需要对一个大的网页进行大的改动,特别是重建一个有数百个或可能有数千行的表格元素,每个行都有很多单元格,我发现建筑物一个字符串变量,然后在结尾设置innerHTML曾经是很多,很多比试图通过DOM功能做得更快.但是,这是针对特定的Intranet Web应用程序,保证100%的用户将使用IE,因此我不需要担心跨浏览器测试.

即使你决定采用字符串构建路线,对于如何提高速度也会有不同的看法.我读过多篇文章,比较了不断添加到字符串末尾(标准myString += 'something' + 'something else'类型操作)的性能,而不是追加到数组变量的末尾,然后使用Array.join()创建一个大字符串.结束.对于某些浏览器的某些版本而言,这又产生了很大的不同,但在其他浏览器中没有区别或更糟.