HTML layout caching

HTML-tekst, prestaties, pagina-indeling

Beschrijving

HTML-meet- en tekenmethoden delen automatisch begrensde gecachte layoutplannen per painter

Een eerste verzoek parseert de bron, lost CSS op, berekent regel-, Flexbox-, Grid-, tabel- en voetnootgeometrie en legt de resulterende tekst-, afbeeldings-, rand-, achtergrond- en koppelingsoperaties vast zonder naar de contentstream van de pagina te schrijven

Een overeenkomend tekenverzoek speelt die operaties op de gevraagde positie af in plaats van de HTML opnieuw te parsen of te meten

Beïnvloede methoden

Cache-identiteit

Plannen worden gematcht op de volledige HTML-bron, de beschikbare breedte, de optionele vervolg hoogte, de fontset, de tekstspatiëring, de equivalent-tag-regels, de gebonden afbeeldings-ID's en -afmetingen en de kerningmodus De tekenpositie is bewust uitgesloten, zodat één gemeten plan op meerdere locaties kan worden afgespeeld zonder de regeleinden te veranderen

De tekenpositie is opzettelijk uitgesloten, zodat één gemeten plan op meerdere locaties kan worden afgespeeld zonder regeleinden te wijzigen

Eén plan dat groter is dan het geheugenbudget blijft beschikbaar voor zijn directe tekening en wordt door latere activiteit vervangen, zodat de cache niet documentbreed onbegrensd groeit

Meetveiligheid

Meting registreert opgemaakte backgrounds, tabelranden, afbeeldingen en links als uitgestelde bewerkingen en voegt ze niet toe aan de geselecteerde pagina

Een enkel plan groter dan het geheugendoel blijft beschikbaar voor zijn directe tekening en wordt door latere activiteit vervangen, zodat een onbegrensde cache over het hele document wordt vermeden

Meetveiligheid

Meting legt gestylede achtergronden, tabelranden, afbeeldingen en koppelingen vast als uitgestelde operaties en voegt ze niet toe aan de geselecteerde pagina

Vervolgresultaten van DrawHTMLTextBox worden opgeslagen met hetzelfde op hoogte begrensde plan dat wordt afgespeeld