Добавить новость

Новости сегодня на DirectAdvert

Новости сегодня от Adwile

Как увеличить скорость загрузки PWA сайта в 3 раза. Часть 1. Сетевые ресурсы.

Как увеличить скорость загрузки PWA сайта в 3 раза. Часть 1. Сетевые ресурсы.

В прошлой статье мы поговорили про прогрессивные сайты, посмотрели кейсы как переход на pwa, а именно ускорение загрузки сайта для пользователей позволяет увеличивать конверсии и вовлеченность аудитории.

Давайте проверим как быстро грузится ваш сайт?

Проверить просто: открываем консоль хрома Command+Option+I (Mac) or Control+Shift+I (Windows, Linux), переходим на вкладку "Performance" и нажимаем кнопку "Start profiling and reload" и смотрим результат на вкладке Summary.

Для примера посмотрим на cackle.me.

Как увеличить скорость загрузки PWA сайта в 3 раза. Часть 1. Сетевые ресурсы.

У нас во время теста это 610 ms. В это время входит полная загрузка и отработка всех скриптов. Основное время занимает отработка скриптов аналитики, которые загружатся асинхронно и не влияют на то, как пользователь видит сайт.  Если ваш сайт не загрузился за 2000-3000 ms за минусом времени на работу  скриптов, влиящих на отображение страницы, то нужно проводить оптимизацию.  Также теперь попробуйте сделать замер с эмуляцией мобильных устройств с настройкой 3G и уменьшение мощности процессора в 4 раза.(шестеренка настроек справа devtools). Результат может быть в 2-3 раза хуже.

Как оптимизировать?

Процесс загрузки сайта состоит из нескольких основных этапов:

  • Network - получение ресурсов по сети
  • Script evaluation - выполнение скриптов на странице
  • Rendering - обработка html элементов браузером
  • Painting - отрисовка DOM элементов браузером

Каждый этап занимает какое-то время и мы посмотрим как его можно уменьшить.

Смотрим в отчет на Network.

На шкале Network показана загрузка всех ресурсов: html страницы, js, css, картинок. Задача уменьшить время загрузки этих ресурсов.

Какая оптимизация была раньше?

  • минифицировать js и css
  • убрать все скрипты в конец тега body
  • сжать картинки

Новые технологии оптимизации загрузки сайта

  • перейти с http/1 на http/2

На http/1 браузер имеет возможность создавать до 6 TCP соединений и внутри одного соединения идет только один запрос, в итоге браузер накапливает очередь запросов, а пользователю приходится ждать загрузки всех ресурсов. Приоритет загрузки ресурсов при http/1 определяет браузер и у каждого браузера своя стратегия определения приоритетов (какие-то сначала грузят css, шрифты, картинки, другие идут строго по html и загружают все последовательно)

Http/2 - вторая версия сетевого протокола http, при котором может передаваться множество запросов в одном соединении TCP. При HTTP/2 сервер может отправить содержимое, которое ещё не запрашивалось клиентом, выслать дополнительные файлы, которые нужны браузеру для отображения страниц, без необходимости парсинга браузером основной страницы. Также на сервере можно установить приоритет ресурсов, которые будут отдаваться сервером в первую очередь. Например, самое верхнее изображение или видео в header'e шаблона может отдаваться в первую очередь, т.к это то, что пользователь увидит в самом начале при заходе на страницу. Остальные изображения будут иметь меньший приоритет, наряду с какими-нибудь скриптами аналитики.

Поддержка браузерами: все браузеры поддерживают http/2 поверх tls. Т.е для работы http/2 сайт должен работать по https.

Поддержка серверами: практически все популярные хостинги поддерживают http/2, на выделенном сервере nginx последних версий также имеет такую поддержку. Практически все популярные сайты уже давно используют именно этот протокол.

Как проверить: Протокол запросов можно посмотреть на вкладке Network в шапке таблицы с запросами (необходимо подключить Protocol по правому клику мыши/двойному tap на маке).

Ускорение: в 2-3 раза. Можно нагуглить http/2 example и протестировать в своем браузере.

Для кого будет иметь максимальный эффект: для страниц с большим кол-вом картинок, библиотек, скриптов.

Как увеличить скорость загрузки PWA сайта в 3 раза. Часть 1. Сетевые ресурсы.
  • использовать Preload и Prefetch

Приоритеты запросов можно посмотреть на вкладке Network в шапке таблицы с запросами (необходимо подключить Priority по правому клику мыши/двойному tap на маке)

<link rel="preload"> информирует браузер, что ресурс необходим как можно скорее и поднимает приоритет загрузки(на вкладке Priority highest).

<link rel="preload" as="script" href="important_for_view.js">
<link rel="preload" as="style" href="critical.css">

Данные будут отправлены в cache страницы, который существует пока открыта данная страница. Данная директива работает практически во всех браузерах и особенно эффективна на http/1. При использовании http/2 запросы кэшируются в отдельном push cache и если сервер уже прислал ресурс, то повторного запроса(от preload) не будет.

<link rel="prefetch"> позволяет сделать предварительную загрузку страницы(на вкладке Priority highest), которую пользователь скорее всего будет использовать/переходить, чтобы задействовать свободное время сети. Самый простой пример - следующая страница пагинации.

<link rel="prefetch" href="next-pagination-page.html">

Данная фунция особенно актуальна на медленной интернет-соединение на мобильном. Т.е пока пользователь просматривает текущую страницу идет подрузка следующих возможных страниц в cache и пользователь мгновенно получает страницу при след.переходе.

  • разделить код

Разделение кода: идея в том, чтобы загружать только те ресурсы, которые необходимы для отображения текущей страницы, а не всего сайта. Раньше при использовании http/1 все js и css соединялись в bundle и отдавались клиенту единым файлом. Это было целесообразно из-за ограничений http/1 по кол-ву запросов. Сейчас, когда у нас есть возможность использовать http/2 мы можем разделить ресурсы и загружать только то, что нужно только для текущей страницы. Для загрузки только нужных ресурсов можно воспользоваться webpack или просто разделите ваши css и js на небольшие файлы и включайте их только там, где они используются.

Ускорение загрузки сайта: данный метод позволяет в несколько раз уменьшить размер подгружаемых ресурсов, и соответственно и скорость загрузки сайта в целом.

В следующей статье мы будем оптимизировать работу ui библитек.

Ставьте лайк в ВК и делайте репост в Twitter  и FB, если вам понравилась статья, и вы хотите продолжения.

Читайте на 123ru.net

Другие проекты от 123ru.net



Архангельск

Более 39 млн рублей направлено на летний отдых и оздоровление детей-сирот в Архангельской области



Мода

Blumarine, коллекция Resort 2025




Українські новини

Відомий аграрій Кормишкін, складає свої депутатські повноваження



Новости 24 часа

Чемпионат и Первенство Москвы и Московской области по автокроссу



Game News

Embracer has closed Alone in the Dark studio Pieces Interactive



Москва

Собянин предупредил москвичей о ливнях и возможном формировании смерчей 20 июня



News Every Day

Inside wicked world of ‘skinny scams’ as Ozempic and weight loss drug fraud attempts rise into the hundreds of thousands



Блоги

Ирина Ортман оставляет в прошлом «Всё, что было вчера».



Москва

Пост №5855372



Жанна Фриске

Память Жанны Фриске почтили посмертной наградой и ее песней на музыкальной премии



Москва

Минэкологии потребовало обеспечить свободный проход к реке в Раменском



WTA

Россиянка Людмила Самсонова выиграла турнир WTA в Хертогенбосе



Москва

Московский аэропорт Домодедово и Всероссийское общество инвалидов заключили соглашение о сотрудничестве



Бато Багдаев

Сказка театра Ульгэр в Бурятии «Волшебный платок бабушки Дари» - это захватывающее путешествие в мир волшебства - Театр и Цирк, Культура и Концерт, Россия и Дети:



Симферополь

Аварийное отключение электроэнергии произошло почти в тридцати населенных пунктах Крыма



Москва

Филиал № 4 ОСФР по Москве и Московской области информирует: Отделение СФР по Москве и Московской области выплатило единовременное пособие при передаче ребенка на воспитание в семью 474 семьям региона



Москва

Собянин рассказал о росте турпотока из Китая



Москва

Топ-5 самых ярких зарубежных архитектурных проектов на первичном рынке Москвы



103news.com — быстрее, чем Я..., самые свежие и актуальные новости Вашего города — каждый день, каждый час с ежеминутным обновлением! Мгновенная публикация на языке оригинала, без модерации и без купюр в разделе Пользователи сайта 103news.com.

Как добавить свои новости в наши трансляции? Очень просто. Достаточно отправить заявку на наш электронный адрес mail@29ru.net с указанием адреса Вашей ленты новостей в формате RSS или подать заявку на включение Вашего сайта в наш каталог через форму. После модерации заявки в течении 24 часов Ваша лента новостей начнёт транслироваться в разделе Вашего города. Все новости в нашей ленте новостей отсортированы поминутно по времени публикации, которое указано напротив каждой новости справа также как и прямая ссылка на источник информации. Если у Вас есть интересные фото Вашего города или других населённых пунктов Вашего региона мы также готовы опубликовать их в разделе Вашего города в нашем каталоге региональных сайтов, который на сегодняшний день является самым большим региональным ресурсом, охватывающим все города не только России и Украины, но ещё и Белоруссии и Абхазии. Прислать фото можно здесь. Оперативно разместить свою новость в Вашем городе можно самостоятельно через форму.

Другие популярные новости дня сегодня


Новости 24/7 Все города России





Топ 10 новостей последнего часа




Новости России

Более 40 новых автобусов закупят в «Мострансавто» Мытищ до конца года

Собянин предупредил москвичей о ливнях и возможном формировании смерчей 20 июня

Показ мод, объединивший европейские и африканские мотивы, стал ярким событием вечерней программы фестиваля «Планета Юго-Запад»

Политолог Марков: Джефф Монсон принял ислам в Москве


Москва

СЕНСАЦИОННЫЙ ДОКЛАД ПРО ДЕЛО СКРИПАЛЕЙ, САФРОНОВА, ГОЛУНОВА.






Rss.plus

Директор Росгвардии генерал армии Виктор Золотов принял участие в посвященных 100-летию дивизии имени Ф.Э. Дзержинского торжественных мероприятиях

Филиал № 4 ОСФР по Москве и Московской области информирует: Отделение СФР по Москве и Московской области выплатило единовременное пособие при передаче ребенка на воспитание в семью 474 семьям региона

СЕНСАЦИОННЫЙ ДОКЛАД ПРО ДЕЛО СКРИПАЛЕЙ, САФРОНОВА, ГОЛУНОВА.

Директор Росгвардии генерал армии Виктор Золотов принял участие в посвященных 100-летию дивизии имени Ф.Э. Дзержинского торжественных мероприятиях

Moscow.media
Москва

Москва-Пекин. Собянин в Китае подписал соглашение о сотрудничестве



103news.comмеждународная интерактивная информационная сеть (ежеминутные новости с ежедневным интелектуальным архивом). Только у нас — все главные новости дня без политической цензуры. "103 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. 103news.com — облегчённая версия старейшего обозревателя новостей 123ru.net.

Мы не навязываем Вам своё видение, мы даём Вам объективный срез событий дня без цензуры и без купюр. Новости, какие они есть — онлайн (с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии).

103news.com — живые новости в прямом эфире!

В любую минуту Вы можете добавить свою новость мгновенно — здесь.

Музыкальные новости

Metallica

Группа Metallica даст виртуальный концерт в Fortnite 22 июня




Спорт в России и мире

Алексей Смирнов – актер, которого, надеюсь, еще не забыли

Военно-спортивный фестиваль Росгвардии в «Лужниках» собрал более 20 000 москвичей и гостей столицы

В УФСИН России по Республике Дагестан прошли лично-командные соревнования по легкой атлетике

Красногорск первым встретил участников международного супермарафона Москва-Минск


Большой шлем

Рублёв и еще два российских теннисиста не сыграют на Олимпиаде в Париже



Новости Крыма на Sevpoisk.ru


Россия

Социальные и ESG-проекты ГПМ Радио названы лучшими в России



Частные объявления в Вашем городе, в Вашем регионе и в России