Примерно так должно быть намного быстрее:
var ul = $("<ul />");
for (var i = 0, l=topics.length; i < l; i++) {
$("<li />", { text: result.Name, "class": "example" }).appendTo(ul);
};
$("#searchResults").append(ul.contents());
Используя фрагмент документа ($("<ul />")
) и добавляя к нему, а затем добавляя в конце, мы не связываемся со всем DOM каждого добавления. Кроме того, мы не выбираем #searchResults
каждый цикл ... или проверка .length
также может быть дорогой.
Примечание: этот метод по-прежнему использует DOM для создания элементов (в отличие от строки), устраняя проблемы, связанные с result.Name
наличием HTML, который может испортить ситуацию и т. Д.