我比较了一些框架(即ReactJS和AngularJS)与" vanilla HTML + JS"之间的性能。在此过程中,我遇到了Internet Explorer绝对糟糕的表现(我已经在IE9和IE11中进行过测试,他们都表现出性能问题,但不同)。
原始代码是HTML文件,但为了在此处共享,我已将其移至JSFiddle。如果您愿意,我可以将其作为GitHub Gist发布。
无论如何,目标是渲染一个包含5,000个项目的表格(代表文件和文件夹)。在我的测试机器上,IE11在初始渲染时大约需要30秒,而Chrome / Safari / Firefox则在1.5-3秒范围内。如果我看一下生成HTML字符串需要多长时间(甚至不是DOM操作),IE11上只有15秒,实际渲染时只有15秒。
关于我做错了什么的任何想法?一旦想要查看实际结果,请务必将sampleSize
从100更改为5,000:
var sampleSize = 100;
到
var sampleSize = 5000;
注意:这是我为提高绩效所做的工作:
.join('')
的数组,这是IE的已知性能问题$(tblBody).html(nodes.join(''));
的DOM访问,而不是一次追加一行上述两项增强功能使初始渲染时间从36秒降至30秒。
注2:代码是 f * ed up,因为它仍然比我的基于ReactJS或AngularJS的解决方案更快。所以主要的问题是:IE正在做什么?