3

与其他浏览器相比,IE9执行时间非常长,执行this script (for dynamic manipulation of DOM)。我好奇;它将以什么方式影响下一代丰富应用的执行速度?除了这个迭代测试之外,是否有任何相关的真实世界Web应用程序示例,我们可以在其中观察性能差异? 另外,这是他们的JS引擎或布局引擎的问题吗?IE9 +:处理DOM时性能不佳

更新:

该问题已在IE10 RTM中解决。

+1

IE10预览是没有更快,FWIW –

+0

我同意!这是非常奇怪和很差的表现(约0.140s的Safari vs 44s)。我想知道它会对现实世界和次世代丰富的网络应用产生怎样的影响?因此,我们可以在考虑支持IE9 +浏览器的同时设计出良好的实践。 –

+0

@DaveMarkle,IE10 RTM解决了这个问题。 –

回答

1

用途:

function testAppendFrag(div) { 
    var docFrag=document.createDocumentFragment(),i=count; 
    while(i--){ 
     docFrag.appendChild(document.createElement("div")); 
    } 
    div.appendChild(docFrag.cloneNode(true)); 
} 
+0

使用docucmentfragments会显着改善代码。 – Raynos

+0

谢谢。事实上,性能问题与testAppend函数没有关系。如果可以详细说明testRemoveFrag函数的实现,那将非常有用。 :-) –

+1

@vulcan从DOM中分离DIV。删除子元素。将DIV附加到DOM。这个想法是执行DOM-manipulation“off-DOM”,ergo,尽可能少地触及实时DOM。 –