HTML layout caching
Texte HTML, performances, disposition des pages
Description
Les méthodes de mesure et de tracé HTML partagent automatiquement des plans de mise en page bornés et mis en cache sur chaque moteur de tracé
Une première requête analyse la source, résout le CSS, calcule la géométrie des lignes, Flexbox, Grid, tables et notes de bas de page, puis enregistre les opérations de texte, d’image, de bordure, d’arrière-plan et de lien obtenues sans écrire dans le flux de contenu de la page
Une demande de dessin correspondante rejoue ces opérations à la position demandée au lieu d'analyser ou de mesurer à nouveau le HTML
Méthodes concernées
GetHTMLTextHeightGetHTMLTextWidthGetHTMLTextLineCountDrawHTMLTextDrawHTMLTextBoxDrawHTMLTextMatrixDrawHTMLTextBoxMatrix
Identité du cache
Les plans correspondent selon le HTML complet, la largeur disponible, la hauteur de continuation, les polices, l'espacement, les règles de balises, les images liées et le mode de crénage
La position de dessin est délibérément exclue, afin qu'un plan mesuré puisse être rejoué à plusieurs endroits sans modifier les sauts de ligne
La modification d'une police HTML, d'une liaison d'image ou d'une règle de balise équivalente efface les plans susceptibles de conserver des références d'objet obsolètes
Limites et éviction
Chaque moteur de tracé conserve au maximum huit plans récemment utilisés et limite normalement leur mémoire estimée à 32 Mio
Un plan unique dépassant la cible mémoire reste disponible pour son dessin immédiat puis est remplacé par l'activité suivante, évitant un cache documentaire illimité
Sécurité des mesures
La mesure enregistre les arrière-plans stylés, bordures de tableau, images et liens comme opérations différées et ne les ajoute pas à la page sélectionnée
Les résultats de continuation de DrawHTMLTextBox sont enregistrés avec le même plan contraint en hauteur qui est rejoué