Добавление при помощи DocumentFragment

Однако если мы будем использовать DocumentFragment для совершения тех же самых операций, то ситуация изменится. Для начала мы добавим все наши узлы к самому фрагменту (используя имеющийся метод createDocumentFragment).

Самое интересное начинается тогда, когда мы собираемся добавить сами узлы в документ: нам нужно вызвать по одному разу appendChild и cloneNode для всех узлов!

var div = document.getElementsByTagName("div");

var fragment = document.createDocumentFragment(); for ( var e = 0; e < elems.length; e++ ) {         fragment.appendChild( elems[e] ); } for ( var i = 0; i < div.length; i++ ) {         div[i].appendChild( fragment.cloneNode(true) ); }

При проведении замеров времени можно увидеть следующую картину (табл. 7.2).

БраузерНормальныйFragment
Firefox 3.0.19047
Safari 3.1.215644
Opera 9.5120895
IE 6401 140
IE 7 230 61
IE 8b1 120 40

Таблица 7.2. Сравнение методов работы с DOM-деревом, результаты в миллисекундах