Как динамически сгенерировать и вставить на страницу большое количество DOM элементов?
Нужно в корневой элемент(#root) вставить очень большое количество цветных блоков(40тыс+). Пробовал вставлять фрагментами по 1000 через setTimeout(), но все равно зраузер виснет после 2-3к элементов
Ответы (1 шт):
Автор решения: Денис Степанов
→ Ссылка
const el = document.createElement('div');
el.classList.add('element');
function newClone() {
const clone = el.cloneNode();
clone.style.backgroundColor = `hsl(${Math.random() * 360}, 80%, 65%)`;
return clone
}
function task(iteration = 30) {
if (!iteration) return;
requestAnimationFrame(() => {
root.append(...Array.from({
length: 1000
}, newClone));
task(iteration - 1);
});
}
task();
.element {
width: 4px;
height: 4px;
display: block;
float: left;
}
<div id="root"></div>