Quantas redesenha o DOM vai acrescentar crianças em um loop de causa?

0

Pergunta

Quantas redesenha o DOM vai acrescentar crianças em um loop de causa?

Eu estava sob a impressão de que isso causaria 200. 1 para cada vez que um elemento é acrescentado, e 1 de cada vez que a sua textContent é atualizado.

Mas, em Jake Archibald falar em JSConf, ele parece mencionar que os navegadores irão lote isso juntos.

for (let i = 0; i < 100; i++){ 
  const div = document.createElement('div');
  document.body.appendChild(div);
  div.textContent = 'Hello';
}
dom javascript
2021-11-22 07:59:04
1

Melhor resposta

1

Apenas uma vez; ver Erin Zimmer continuação do pipeline de renderização https://youtu.be/u1kqx6AenYw

Além disso, você pode testá-lo com algo como:

//document.body.innerHTML = '';
for (let i = 0; i < 100; i++){ 
  const div = document.createElement('div');
  document.body.appendChild(div);
  div.textContent = 'Hello';
  let x = 0;
  for(let j = 0; j < 1e7; j++){
     x += Math.sin(Math.random())
  }
}```
2021-11-22 08:16:06

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................