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

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