Как найти desktop-ресурсы на mobile
Загрузите страницу с узким viewport и пустым кешем, найдите невидимый компонент в DOM и свяжите его запросы с initiator. Затем сравните с desktop и убедитесь, что мобильная альтернатива сохраняет функцию.
Быстрая проверка
- Откройте чистое окно DevTools, включите mobile device mode до ввода URL, Disable cache и Preserve log.
- Загрузите страницу и найдите визуально отсутствующий desktop-компонент через Elements или известный селектор.
- В Network отфильтруйте его изображения, JS, CSS, iframe и XHR/fetch; смотрите колонку Initiator.
- Сохраните число запросов и transferred bytes, затем повторите холодную загрузку на desktop.
- Проверьте mobile-замену, навигацию, формы и прямые ссылки; поверните viewport и измените ширину.
Хороший результат: ресурсы настоящего desktop-only компонента отсутствуют в холодной mobile-загрузке, а нужный смысл и действие доступны в лёгкой версии.
Уровни проблемы
| Наблюдение | Уровень | Действие |
|---|---|---|
| Desktop-ресурсов нет, mobile-функция сохранена | Проблемы нет | Сохранить HAR обеих версий |
| Скрытый маленький декоративный ресурс загружается | Низко | Сравнить экономию и сложность |
| Невидимый slider/widget грузит крупные assets и JS | Высоко | Разделить ресурс и инициализацию |
| Оптимизация убрала mobile-контент или действие | Критично | Вернуть доступную альтернативу |
Техническая проверка скрытых элементов
[...document.querySelectorAll('img, iframe, video, [hidden]')]
.filter(el => getComputedStyle(el).display === 'none' || !el.getClientRects().length)
.map(el => ({ tag: el.tagName, src: el.currentSrc || el.src, class: el.className }))Список показывает скрытые элементы текущего DOM, но не доказывает загрузку и не видит background, удалённые узлы или JS/API. Каждый кандидат подтверждайте в Network по URL и initiator.
Ложные выводы и границы
- Современный браузер может не загрузить
imgвнутри известногоdisplay:none, но это проверяется фактической сетью, а не предполагается. - Responsive
picture/srcsetвыбирает один подходящий источник; отсутствие desktop URL в Network — ожидаемо. - Общий JS-файл может содержать desktop-код без отдельного запроса; Coverage/bundle analysis — дополнительная проверка.
- Service worker, кеш и изменение viewport после загрузки искажают результат.
- Один viewport не представляет все телефоны, ориентации, DPR и accessibility zoom.
Автоматическая цена относится к согласованному компоненту и шаблонам на странице услуги. Для исправления используйте пошаговую инструкцию.