Skip to content

rakov-di/homework_devtools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Домашка по тулингу. DevTools

Содержание

Описание

Тестировалась desktop-версию сайта https://lifehacker.ru. Не все скриншоты делались в один день, поэтому данные на них (время запросов, размеры ресурсов и т.д.) могут незначительно отличаться друг от друга и от приложенных HAR-архива и профиля Performance.

Вкладка Network

(вернуться к содержанию)

Профиль загрузки ресурсов при открытии страницы https://lifehacker.ru (HAR-архив).

Дублирование ресурсов.

Многие одинаковых запросов и скриптов от гугла и яндекса.

google_same1 google_same2 google_same3 yandex_same1

Но вообще сложно определить, один ли и тот же запрос отправляется или нет. Например, есть ряд "похожих" запросов, где похоже все кроме, одного параметра. Возможно, этот параметр отличает "уникальность" содержимого запроса и он по разному обрабатывается. А может это просто порядковый номер запроса или хэш, определяющий уникальность запроса, но не его содержимого, и тогда этот запрос можно считать лишним.

google_maybe2 google_maybe3

Вот здесь, например, отличается параметр id - запрос идет за разными баннерами. yandex_other1

Но в целом, даже повторная отправка одного и того же запроса может быть полезна. На стоороне бэкенда может стоять счетчик таких одинаковых запросов, в зависимости от значения которого выбираются разные действия. Т.е. кажется, что даже одинаковые запросы могут оказаться не "лишними". По хорошему, чтобы определить, лишний ли запрос, надо бы знать, что с ним должно происходить на стороне бэкенда. А если это бэкенд стороннего сервиса (как здесь Google/Yandex) - нужен хотя бы опыт работы с этими сервисами.

С запросами непосредственно к lifehacker.ru, тоже все неоднозначно. Есть двойная загружка картинок (см. далее) или два раза отправляется GET-запрос 1077477&_embed:

query_embed

Есть несколько ресурсов с похожими именами: all.min.css, all.min.js, app.js, - и имеющих похожее содержание (например, частично совпадают названия css-классов в all.min.css):

all app

Но лежат они при этом в разных местах, например, в темах vs плагины. Скорее всего это лишь кажущаяся похожесть, на самом деле файлы разные (другое дело, что большая часть кода в этих файлах не используется при загрузке страницы, но об этом позже).

all app

Лишний размер ресурсов

Многие картинки не до конца оптимизированы. Я скачал несколько jpg/png файлов и попробовал сжать с помощью ImageOptim с настройками по умолчанию - получил сжатие 9% (345Кб).

Неоптимизированные картинки

Одновременно загружаются 2 картинки oblozhka-2: большого и маленького разрешения. 2 картинки

Сама картинка.

oblozhka-2

При этом во вьюпорте экране ни одной из этих двух картинок не видно.

Нет картинки

Медленно загружающиеся ресурсы

В основном это картинки. Но также есть:

  • скрипты wordpress, в том числе wp-embed.min.js, позволяющий вставлять код из других ресурсов (например, c youtube) и плагин авторизации LH-page.
  • библиотеки для работы с рекламой и иницируемые ими запросы, загрузки скриптов и др. (loader.js, publishertag.js и др.)

Медленно загружающиеся ресурсы

Ресурсы, блокирующие загрузку

Так и не нашел, как на вкладке Network получить список ресурсов, блокирующих загрузку. Обычно для этого использую вкладку Аудит (Lighthouse). Ну и в целом блокирующим ресурсом, видимо, будет как минимум любой js, подключенные в head без атрибутов async/defer, и любой css (не скрытый явно от загрузки).

Lighthouse Lighthouse2

Вкладка Performance

(вернуться к содержанию)

Профиль загрузки страницы https://lifehacker.ru (посмотреть).

Время от начала загрузки до события First Paint ~1748ms.

Time to FP

Время от начала загрузки до события First Meaningful Paint ~2932ms.

Time to FMP

Время от начала загрузки до события DOM Content Loaded ~3998ms.

Time to DCL

Время от начала загрузки до события Load ~8000ms.

Time to OL

Общее время на обработку документа:

  • Loading (~181ms)
  • Scripting (~4231ms)
  • Rendering (~1236ms)
  • Painting (~333ms)

Time common

Вкладка Coverage

(вернуться к содержанию)

Вкладка Coverage после загрузки выглядит так.

Unused Common

Объем неиспользованного CSS ~387 KB (~12% от всего CSS).

Unused CSS

Некоторые CSS при загрузке не используются вообще (100% unused). Absolutely unsed css

Объем неиспользованного JS - 1.4 MB (~50% от всего JS).

Unused JS

Реальный объем неиспользуемого кода (на который может быть направлены наша оптимизация) меньше, т.к.:

  • часть CSS/JS принадлежит сторонним ресурсам, например Яндекс.Метрики, Яндекс.ADFOX, Google.Analytics. Мы (как разработчики сайта) не можем повлиять на них напрямую.
  • изначально показан лишь использованный CSS/JS на момент загрузки. При взаимодействии с интерфейсом (открытие меню, скролл страницы, ховеры, открытие всплывающих окон) объем неиспользованного кода сокращается.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published