对于我想要完成的任务,我可以使用createElement()或inner
HTML和字符串.
到底哪个真的更快?长期以来我一直认为字符串比返回相同结果的内置函数要慢得多,但这是真的吗?
我问,因为我尝试过createElement(),似乎所有必须添加到每个元素的属性都会减慢速度.不仅如此,它也占用了更多的空间.我有一个基于数组长度的1-infinity循环,但最好在显示减速迹象之前加上最多50个元素.在我想要创建的这50个元素中,大约还有10个元素.总而言之,它实际上创造了大约500个元素.
通过创建具有内置函数的元素,我注意到比平常更快的减速,并且由于我无意中重置该数组(数组是5D并且未在同一脚本中设置),我想知道哪个在做到这一点之前,无论是速度还是简单的更好的练习,都是真的更好.
解决方法
此问题的性能差异因浏览器和(有时)在任何一个浏览器的不同版本之间而异,我看过一些不同的文章就此问题提供了不同的建议.
根据我自己的经验,我只记得有一次我真的需要对一个大的网页进行大的更改,特别是重建一个包含数百个或可能有数千个行的表元素,每个行都有很多单元格,我发现构建了一个字符串变量然后在结束时设置innerHTML比尝试通过DOM函数快得多.但是,这是针对特定的Intranet Web应用程序,保证100%的用户将使用IE,因此我不需要担心跨浏览器测试.
即使你决定采用字符串构建路线,对于如何提高速度也会有不同的看法.我读了不止一篇文章,比较了不断添加到字符串结尾的性能(标准myString =’某些”其他’类型操作),而不是追加到数组变量的末尾然后使用Array.join ()在最后创建一个大字符串.对于某些浏览器的某些版本而言,这又产生了很大的不同,但在其他浏览器中没有区别或更糟.