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。 –