HTML layout caching

HTML-текст, производительность, макет страницы

Описание

Методы измерения и рисования HTML автоматически разделяют ограниченные кэшированные планы разметки на каждом рендерере

Первый запрос разбирает источник, разрешает CSS, вычисляет геометрию строк, Flexbox, Grid, таблиц и сносок и фиксирует результирующие операции текста, изображения, рамки, фона и ссылки, не записывая в поток содержимого страницы

Соответствующий запрос рисования воспроизводит эти операции в запрошенной позиции вместо повторного разбора или измерения HTML

Затронутые методы

Идентичность кэша

Планы сопоставляются по полному HTML-исходнику, доступной ширине, необязательной высоте продолжения, набору шрифтов, межтекстовым интервалам, правилам эквивалентных тегов, привязанным идентификаторам и размерам изображений и режиму кернинга. Позиция рисования намеренно исключена, поэтому один измеренный план можно воспроизвести в нескольких местах, не меняя разрывы строк

Позиция рисования намеренно исключена, поэтому один измеренный план можно воспроизвести в нескольких местах, не меняя переносов строк

Единственный план крупнее целевого объёма памяти остаётся доступным для немедленной отрисовки и вытесняется последующей активностью — это не даёт кэшу на весь документ расти без границ

Безопасность измерений

Измерение фиксирует стилизованные фоны, рамки таблиц, изображения и ссылки как отложенные операции и не дописывает их на выбранную страницу

Единственный план крупнее целевого объема памяти остается доступным для своего немедленного рисования и заменяется последующей активностью, что позволяет избежать неограниченного кэша на весь документ

Безопасность измерения

Измерение фиксирует стилизованные фоны, границы таблиц, изображения и ссылки как отложенные операции и не добавляет их на выбранную страницу

Результаты продолжения из DrawHTMLTextBox сохраняются с тем же планом, ограниченным по высоте, который и воспроизводится