Qué es DOM reflow?


Estaba leyendo sobre la diferencia entre dos propiedades css display:none y visibility:hiddeny encontré DOM reflow term.

La declaración fue

display: none causa el reflujo del DOM donde está visibility: hidden no.

Así que mi pregunta es:

¿Qué es DOM reflow y cómo funciona?

Author: eirenaios, 2014-12-24

3 answers

A reflow calcula el diseño de la página. Un reflujo en un elemento vuelve a calcular las dimensiones y la posición del elemento, y también desencadena más reflujos en los hijos de ese elemento, antepasados y elementos que aparecen después de él en el DOM. Luego se llama un repintado final. El reflujo es muy caro, pero desafortunadamente se puede activar fácilmente.

El reflujo ocurre cuando:

  • insertar, eliminar o actualizar un elemento en el DOM
  • modificar el contenido de la página, por ejemplo, el texto en un cuadro de entrada
  • mover un elemento DOM
  • animar un elemento DOM
  • tomar medidas de un elemento como offsetHeight o getComputedStyle
  • cambiar un estilo CSS
  • cambiar el nombre de clase de un elemento
  • agregar o eliminar una hoja de estilo
  • cambiar el tamaño de la ventana
  • scroll

Para obtener más información, consulte aquí: Repintes y Reflujos: Manipulación del DOM responsable

 60
Author: Karlen Kishmiryan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-07 06:42:16

Reflow es el nombre del proceso del navegador web para volver a calcular el posiciones y geometrías de elementos en el documento, para el propósito de volver a representar parte o todo el documento.

Https://developers.google.com/speed/articles/reflow

display:none ocultar el div como si el div no se representa mientras que visibility:hidden solo se oculta pero el espacio sigue ocupado

 6
Author: Vitorino fernandes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-24 12:51:33

Significa, que si se establece dinámicamente display: none;, su navegador volverá a calcular las posiciones de los elementos DOM, si visibilidad: oculto; - no. Piense, porque visibility: hidden; no cambia el tamaño de los elementos en dom.

 0
Author: degr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-24 12:51:35