HTML layout caching

Texto HTML, rendimiento, diseño de página

Descripción

Los métodos de medición y dibujo de HTML comparten automáticamente planes de disposición en caché de tamaño limitado en cada pintor

Una primera solicitud analiza el origen, resuelve CSS, calcula la geometría de líneas, Flexbox, Grid, tablas y notas al pie, y registra las operaciones resultantes de texto, imagen, borde, fondo y enlace sin escribir en el flujo de contenido de la página

Una solicitud de dibujo coincidente reproduce esas operaciones en la posición solicitada, en vez de volver a analizar o medir el HTML

Métodos afectados

Identidad de la caché

Los planes se comparan mediante el código fuente HTML completo, la anchura disponible, la altura opcional de continuación, el conjunto de fuentes, el espaciado del texto, las reglas de etiquetas equivalentes, las identidades y dimensiones de las imágenes vinculadas y el modo de interletraje

La posición de dibujo se excluye deliberadamente, por lo que un plan medido puede repetirse en varias ubicaciones sin cambiar los saltos de línea

Al cambiar una fuente HTML, una vinculación de imagen o una regla de etiquetas equivalentes, se borran los planes que podrían conservar referencias a objetos obsoletos

Límites y expulsión

Cada pintor conserva como máximo ocho planes utilizados recientemente y normalmente limita su memoria estimada a 32 MiB

Un plan individual mayor que el objetivo de memoria permanece disponible para su dibujo inmediato y es sustituido por actividad posterior, lo que evita una caché ilimitada en todo el documento

Seguridad de las mediciones

La medición registra fondos con estilo, bordes de tabla, imágenes y enlaces como operaciones diferidas, y no los añade a la página seleccionada

Los resultados de continuación de DrawHTMLTextBox se almacenan con el mismo plan limitado por altura que se reproduce