CSS-рендеринг - интересная тема, и все конкуренты стремятся ускорить рендеринг слоя представления (HTML и CSS), чтобы мгновенно получить наилучшие результаты для конечных пользователей.
Во-первых, да, у разных браузеров есть свой собственный синтаксический анализатор / движки рендеринга
- Chrome, Opera (от версии 15) - Использует Webkit Форк называется Мигает
Рендеринг двигателя
- Safari - использует Webkit (теперь переходит на Webkit2)
- Internet Explorer - использует Trident Рендеринг движка
- Mozilla Firefox - использует геккона
Все эти движки рендеринга содержат как интерпретатор CSS, так и HTML DOM-парсер .
Все эти двигатели следуют ниже перечисленным моделям, это набор W3C стандарта
Примечание. Все эти модели взаимосвязаны и взаимозависимы. Они есть
не отдельные модели, определяющие стандарты для рендеринга CSS. Эти модели
пролить свет на то, как обрабатывается CSS на основе приоритетов, таких как встроенные стили,
Специфичность и т. Д.
Пояснение:
Этап 1:
Все браузеры загружают с сервера сценарии HTML и CSS и начинают с анализа тегов HTML на узлах DOM в дереве, называемом деревом контента .
В то время как анализируемый HTML-документ движки рендеринга браузера создают другое дерево, называемое Render tree . Это дерево имеет визуальные элементы в том порядке, в котором они будут отображаться.
Firefox называет его фреймами, в то время как ребята из Webkit называют их как Renderer или Renderer объект.
См. Изображение ниже: (Источник: HTML5 Скалы )
Этап 2:
После описанного выше процесса оба этих дерева проходят Процесс макета , означающий, что браузер сообщает окну просмотра, где каждый узел должен быть размещен на экране.
Это определяется как схема позиционирования W3C (перейдите по этой ссылке для получения подробной информации) , которая инструктирует браузер о том, как и где размещать элементы. Ниже приведены 3 типа.
- Нормальный поток
- поплавки
- Абсолютная позиция
Этап 3:
Теперь последний этап называется Живопись . Это постепенный процесс, когда механизм рендеринга проходит через все узлы дерева рендеринга и визуально рисует их, используя внутренний слой пользовательского интерфейса. На этом этапе применяются все визуальные Fx , такие как размер шрифта, цвет фона, рисование таблиц и т. Д.
Примечание: этот этап можно четко наблюдать, если вы попытаетесь открыть
веб-страница на медленном соединении. Большинство современных браузеров для лучшего пользователя
Опыт стараюсь отображать элементы как можно скорее. Это дает
У пользователя сложилось впечатление, что страница загружается и нужно дождаться завершения.
Блок-схема рабочего процесса для лучшего понимания
Источник HTML5 Скалы
- Геккон Мозиллы:
Ссылки: (Пожалуйста, прочитайте ссылки ниже. Это лучшие ресурсы, доступные в Интернете по этой теме)