HTML layout caching
HTML-tekst, ydeevne, sidelayout
Beskrivelse
HTML-måle- og tegnemetoder deler automatisk afgrænsede cachelagrede layoutplaner på hver painter
En første anmodning fortolker kilden, opløser CSS, beregner geometri for linjer, Flexbox, Grid, tabeller og fodnoter og registrerer de resulterende tekst-, billed-, kant-, baggrunds- og linkhandlinger uden at skrive til sidens indholdsstrøm
En tilsvarende tegneanmodning afspiller disse handlinger på den ønskede placering i stedet for at fortolke eller måle HTML'en igen
Berørte metoder
GetHTMLTextHeightGetHTMLTextWidthGetHTMLTextLineCountDrawHTMLTextDrawHTMLTextBoxDrawHTMLTextMatrixDrawHTMLTextBoxMatrix
Cacheidentitet
Planer matches efter hele HTML-kilden, den tilgængelige bredde, valgfri fortsættelseshøjde, skrifttypesæt, tekstafstand, regler for tilsvarende tags, bundne billedidentiteter og -dimensioner samt knibningstilstanden
Tegnepositionen er bevidst udeladt, så én opmålt plan kan afspilles på flere placeringer uden at ændre linjeskift
Hvis en HTML-skrifttype, billedbinding eller regel for tilsvarende tags ændres, ryddes planer, som kunne bevare forældede objektreferencer
Grænser og fjernelse
Hver tegner bevarer højst otte nyligt brugte planer og begrænser normalt deres anslåede hukommelsesforbrug til 32 MiB
En enkelt plan, der er større end hukommelsesmålet, forbliver tilgængelig til den umiddelbare tegning og erstattes af senere aktivitet, så en ubegrænset cache for hele dokumentet undgås
Sikre målinger
Målingen registrerer formaterede baggrunde, tabelkanter, billeder og links som udskudte handlinger og føjer dem ikke til den valgte side
Fortsættelsesresultater fra DrawHTMLTextBox gemmes med den samme højdebegrænsede plan, som afspilles igen