3. Модель отображения
1. Поток, контексты, позиционирование, браузерная
математика
2. Особенности реализаций модели отображения в
разных браузерах
3. Браузеры
:3
18. Схема работы модуля отображения
Парсим HTML
для построения
DOM дерева
:12
Построение
дерева
рендеринга
Расстановка
элементов
дерева
Отрисовка
дерева
рендеринга
27. Синтаксический анализ (особенности)
1. Язык имеет "щадящий" характер.
2. В браузерах заложены механизмы обработки
некоторых частых ошибок в коде HTML.
3. Цикл синтаксического анализа характеризуется
возможностью повторного вхождения. Исходный
документ обычно не меняется в процессе
анализа, однако в случае HTML теги скрипта,
содержащие document.write, могут добавлять
новые токены, поэтому исходный код может
меняться.
:21
28. Ошибки синтаксиса
1. Использование добавляемого элемента явно запрещено
одним из внешних тегов. В этом случае необходимо
закрыть все теги, кроме того, который запрещает
использование данного элемента, и добавить этот элемент
в самом конце.?
2. Элемент нельзя добавить напрямую. Возможно, автор
документа забыл вставить тег между элементами (или
такой тег необязателен). Это касается тегов HTML, HEAD,
BODY, TBODY, TR, TD, LI.?
3. Блочный элемент добавлен внутрь строчного. Необходимо
закрыть все строчные элементы вплоть до следующего в
иерархии блочного элемента.?
4. Если это не помогает, необходимо закрывать элементы,
пока не появится возможность добавить нужный элемент
или проигнорировать тег.?
:22
39. Render tree vs DOM
• не все блоки из DOM попадают в дерево
отображения;
:31
40. Render tree vs DOM
• не все блоки из DOM попадают в дерево
отображения;
• в некоторых случаях в render tree будет
создаваться
:31
41. Render tree vs DOM
• не все блоки из DOM попадают в дерево
отображения;
• в некоторых случаях в render tree будет
создаваться
больше блоков, чем есть в DOM;
:31
63. Инкрементеный Reflow
•
•
вставка новых элементов в DOM
изменение атрибутов (например, смена
класса)
• смена состояния
• наведение курсора
• выбор чекбокса
:42
64. Инкрементеный Reflow
•
•
вставка новых элементов в DOM
изменение атрибутов (например, смена
класса)
• смена состояния
• наведение курсора
• выбор чекбокса
• фокус в поле текстового ввода
:42
65. Инкрементеный Reflow
•
•
вставка новых элементов в DOM
изменение атрибутов (например, смена
класса)
• смена состояния
• наведение курсора
• выбор чекбокса
• фокус в поле текстового ввода
• и т.д
:42