Использование методов DOM для его создания должно работать быстрее:
var list = ("#list ol");
for(i = 0; i < reallyLongArray.length; i++) {
$(document.createElement('li'))
.append($(document.createElement('a'))
.text('Hi')
.attr({href: 'foobar'})
)
.appendTo(list);
}
edit : На самом деле, использование DocumentFragment должно сделать это еще быстрее:
var fragment = document.createDocumentFragment();
for(i = 0; i < reallyLongArray.length; i++) {
fragment.appendChild($(document.createElement('li'))
.append($(document.createElement('a'))
.text('Hi')
.attr({href: 'foobar'})
)
.get(0)
);
}
$('list ol').append(fragment);
Возможно, вы также захотите clear()
<ol>
перед добавлением к нему элементов
другое редактирование Я создал тест jsperf в http://jsperf.com/insert-html-vs-dom-manipulation - обе эти версии медленнее, чем установка innerHTML (потому что для создания элементов используется jQuery). Использование dom-манипуляции с нативными методами намного быстрее, чем установка HTML, НО самый быстрый способ с большим отрывом - использовать DOM-манипуляции с DocumentFragment без jQuery, используя нативные методы .