Новая функция Chrome, получившая название «Blink LazyLoad», призвана значительно повысить производительность, откладывая нагрузку ниже-обратных изображений и сторонних
с.
Цели этого смелого эксперимента состоят в том, чтобы улучшить общую скорость рендеринга контента, который появляется в окне просмотра пользователя (также известный как выше), а также уменьшить сетевые данные и использование памяти. ✨
Содержание статьи
?? Как это будет работать?
Предполагается, что временная отсрочка менее важного контента резко улучшит общую воспринимаемую производительность.
Если это предложение будет успешным, автоматическая оптимизация будет выполняться во время фазы загрузки страницы:
- Изображения и iFrames будут проанализированы для оценки важности.
- Если они считаются несущественными, они будут отложены или вообще не загружены:
- Отложенные элементы будут загружаться только в том случае, если пользователь прокрутил область поблизости.
- Пустое изображение заполнителя будет использоваться до тех пор, пока изображение не будет извлечено.
Публичное предложение содержит несколько интересных деталей:
- LazyLoad состоит из двух разных механизмов: LazyImages и LazyFrames.
- Отложенные изображения и iFrames будут загружаться, когда пользователь прокручивается в пределах определенного количества пикселей. Количество пикселей будет варьироваться в зависимости от трех факторов:
- Как только браузер установит, что изображение расположено под сгибом, оно выдаст запрос диапазона, чтобы получить первые несколько байтов изображения, чтобы установить его размеры. Затем размеры будут использованы для создания заполнителя.
Атрибут lazyload
позволит авторам указывать, какие элементы должны или не должны быть ленивыми. Вот пример, который указывает, что это содержимое несущественно:
Существует три варианта:
-
по
— указывает на сильное предпочтение отсрочить выборку до тех пор, пока контент не будет просмотрен. -
выкл.
— немедленно получить этот ресурс, независимо от способности просмотра. -
авто
— Позвольте браузеру решить (имеет тот же эффект, что и вовсе не использовать атрибутlazyload
).
? Реализация безопасной политики LazyLoad
Политика использования: LazyLoad предоставит механизм, позволяющий авторам принудительно выбирать функциональность LazyLoad или из нее на основе каждого домена (подобно тому, как работают политики безопасности контента). Существует еще неявный запрос на тяну, который описывает, как это может работать.
? Как насчет обратной совместимости?
На данный момент трудно сказать, могут ли эти оптимизации страниц вызвать проблемы совместимости для существующих сайтов.
Сторонние iFrames используются для большого количества целей, таких как реклама, аналитика или аутентификация. Откладывание или отсутствие загрузки критического iFrame (потому что пользователь никогда не прокручивает далеко) может иметь серьезные непредвиденные последствия. Страницы, которые полагаются на изображение или iFrame, загруженные и присутствующие, когда onLoad
пожаров могут также столкнуться с серьезными проблемами.
. Эти автоматические оптимизации могут бесшумно и эффективно ускорять скорость рендеринга Chrome без каких-либо заметных проблем для пользователей. Команда Google, стоящая за предложением, тщательно измеряет характеристики производительности эффектов LazyLoad с помощью показателей, которые записывает Chrome.
? Включение LazyLoad
На момент написания статьи LazyLoad доступен только в Chrome Canary, за двумя обязательными флагами:
-
хром: // флаги / # включить-ленивым-изображения заряжания
-
хром: // флаги / # включить-ленивую-кадр загрузку
Флаги можно включить, перейдя к chrome: // flags
в браузере Chrome.
? Ссылки и материалы
? В заключение
По мере того, как мы начинаем приветствовать следующего миллиарда пользователей в Интернете, мы с гордостью знаем, что мы только начинаем понимать сложность браузеров, возможности подключения и пользователей.
Связанные