Простой CSS-хак для сокращения времени загрузки страницы

0 0

Влияние CSS на время загрузки страницы

CSS — один из основных факторов, влияющих на время загрузки страницы. Когда приложение встречает файл CSS, оно загружает CSS в приоритетном порядке. На основе CSS создаются объектные модели CSS (CSSOM). После создания CSSOM он объединяется с деревом DOM для создания «дерева рендеринга». Дерево рендеринга создается, когда дерево DOM объединяется с CSSOM и обеспечивает правильный стиль для всех компонентов на странице.

Чем больше CSS в приложении, тем больше времени уходит на создание CSSOM и его слияние с DOM для создания дерева рендеринга.

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

Использование неблокирующего CSS

Чтобы решить эту проблему, мы можем использовать простой хак и улучшить производительность приложения. Мы хотим, чтобы браузер не ждал загрузки CSS и создания CSSOM во время начальной загрузки страницы.

Простой CSS-хак для сокращения времени загрузки страницы

Практический курс по верстке адаптивного сайта с нуля!

Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3

Мы можем отложить создание CSSOM для некритических ресурсов CSS. Представим, что у нас есть некоторый CSS, который будет применен к определенному элементу, который будет отображаться только после начальной загрузки страницы. Таким образом, нам, для загрузки страницы не нужно ждать загрузки и анализа CSS.

<link rel=”stylesheet” href=”/path/to/my.css” media=”print” onload=”this.media=’all'”>

1<link rel=”stylesheet” href=”/path/to/my.css” media=”print” onload=”this.media=’all'”>

Приведенный выше код указывает, что значением «media» для CSS является «print» , что означает, что CSS не будет применяться изначально и будет применен, когда пользователь попытается распечатать страницу. Также, мы добавили функцию «onload», которая гласит, что после загрузки страницы тип «media» изменится на «all», сделав ее доступным для всех типов media.

Это произойдет, когда страница загрузится, и, таким образом, страница не ждет загрузки CSS и создания CSSOM. Это ускоряет ее загрузку.

* Свойство «media = ‘print’» следует применять только к тем элементам CSS, которые не влияют на первоначальную загрузку страницы. Стили, которые требуются при загрузке страницы на экран, не могут иметь «media = ‘print’».

Автор: Mayank Gupta

Источник: webformyself.com

Оставьте ответ