爲了測試DOM操作與innerHTML的關係,我使用documentFragment
(web page)將此小測試方法添加到div
元素。 Chrome或Firefox的性能不錯,但是在IE(10,9,8)中,它的性能很差,大約需要10-12秒。任何人都可以解釋這種差異和/或闡述一個解決方案,以提高IE的性能?使用文檔片段性能不佳的IE片段
這是一個jsfiddle展示它。
的方法:
function useFragment(){
var frag = document.createDocumentFragment(),
i = 10000,
rval = document.createElement('span');
frag.appendChild(rval);
do {
var optText = 'option '+i
,ref = document.createElement('a')
,zebra = i%2 ? 'zebra' : ''
,islist = true
,isSel = i === 5
;
rval.insertBefore(ref,rval.firstChild);
ref.appendChild(document.createTextNode(optText));
ref.id = 'opt' + i;
ref.className = zebra + (islist && isSel ? ' scrollSelect' : '');
ref.href = '#' + i;
ref.title = optText;
} while (i-->0);
return rval;
}
我從來沒有聽說過文檔片段之前... –
嗨,簡,添加鏈接到關於這個問題的Resig文章。 – KooiInc
我認爲你測量時間的方式有缺陷。例如,您可以在定時區域內爲片段定時定義'useInnerHtmlBttn.onclick'處理程序。 –