Создайте фрагмент документа и добавьте к нему, затем выполните одно добавление для всего набора.
var frag = document.createDocumentFragment();
for(var i = 0; i < 1000; i += 1){
var el = document.createElement('div');
el.appendChild(document.createTextNode('Node ' + (i + 1)));
frag.appendChild(el);
}
document.getElementById('nodeHolder').appendChild( frag );
Теперь ваш getElementById
должен быть запущен только один раз, иОбновление DOM необходимо выполнить только один раз.
Фрагмент документа является универсальным контейнером.При добавлении его в DOM контейнер просто исчезает, и к нему добавляется только его содержимое.
Вы можете немного сжать код, если хотите:
Пример: http://jsfiddle.net/7hagb/
var frag = document.createDocumentFragment();
for(var i = 0; i < 1000; i += 1){
frag.appendChild(document.createElement('div'))
.appendChild(document.createTextNode('Node ' + (i + 1)));
}
document.getElementById('nodeHolder').appendChild( frag );
Кроме того, очень незначительной оптимизацией будет избавление от i + 1
и изменение цикла for
для получения нужных значений.
Пример: http://jsfiddle.net/7hagb/1/
var frag = document.createDocumentFragment();
for(var i = 1; i <= 1000; i += 1){
frag.appendChild(document.createElement('div'))
.appendChild(document.createTextNode('Node ' + i));
}
document.getElementById('nodeHolder').appendChild( frag );