Манипулирование DOM в целом довольно дорого, как правило.Похоже, что создание элементов с нуля - более дорогой процесс, чем просто перестановка уже существующих элементов.См. Следующий мини-тест производительности:
const trs = document.querySelectorAll('tr');
const table = document.querySelector('table');
const t0 = performance.now();
for (let i = 0; i < 10000; i++) {
table.appendChild(trs[i % 4]);
table.appendChild(trs[(1 + i) % 4]);
table.appendChild(trs[(2 + i) % 4]);
table.appendChild(trs[(3 + i) % 4]);
}
const t1 = performance.now();
for (let i = 0; i < 10000; i++) {
table.innerHTML = `
<tr><td>content 4</td><td>content</td><td>content</td></tr>
<tr><td>content 3</td><td>content</td><td>content</td></tr>
<tr><td>content 2</td><td>content</td><td>content</td></tr>
<tr><td>content 1</td><td>content</td><td>content</td></tr>
`;
}
const t2 = performance.now();
console.log('Reshuffling:', t1 - t0);
console.log('Creating from scratch:', t2 - t1);
<table>
<tr><td>content 1</td><td>content</td><td>content</td></tr>
<tr><td>content 2</td><td>content</td><td>content</td></tr>
<tr><td>content 3</td><td>content</td><td>content</td></tr>
<tr><td>content 4</td><td>content</td><td>content</td></tr>
</table>
Тем не менее, если в вашей таблице нет тысяч элементов, то, вероятно, не о чем беспокоиться.