DOM 操作と innerHTML をテストするために、documentFragment
( web page ) を使用してこの小さなテスト メソッドを作成し、要素に 10000 個href
の要素を追加しましたdiv
。Chrome または Firefox のパフォーマンスは問題ありませんが、IE (10、9、8) では劇的に悪く、約10 ~ 12 秒かかります。誰かがこの違いを説明したり、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;
}