Что касается удаления, я не знаю ни одного способа, который был бы действительно эффективным, все известные мне вариации оказали значительное влияние на производительность.
Для создания создайте одну строку html и установите ее как свойство innerHTML в большинстве случаев с наименьшим влиянием на производительность.
Вы будете выполнять все вызовы метода createElement () и все вызовы .append (), позже вы получите доступ к DOM и, как правило, значительно снизите производительность.
Вот пример того, как вы можете улучшить свой код:
// re-add them + new ones
var htmlString = "";
for(i of arr) {
htmlString += "<div></div>";
}
htmlElement.innerHTML = htmlString;