Работайте со своими ul вне DOM, следуя этому шаблону:
// Clone the ul
var $the_ul = $('#the_ul');
var $new_ul = $('#the_ul').clone();
// Do stuff to $new_ul
// In this example create 5000 lis
for(var i = 1; i <= 5000; i++){
$new_ul.append($('<li class="li-' + i + '">foo ' + i + ' bar</li>'));
}
// Replace the ul in the dom with the updated one
$the_ul.replaceWith($new_ul);
См. Этот пример jsFiddle , который создает 5000 lis, а затем фильтрует их (по классам), чтобы показать толькопростые числа, чтобы показать, как этот шаблон может быть достаточно эффективным, и вы не должны столкнуться с проблемами.