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
GetHTMLTextHeightGetHTMLTextWidthGetHTMLTextLineCountDrawHTMLTextDrawHTMLTextBoxDrawHTMLTextMatrixDrawHTMLTextBoxMatrix
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