А что если отложить весь JS?
Привет . В прошлой статье я писал о том, как отложить внешние скрипты. И кто-то мог задаться вопросом: а что если отложить вообще весь JS? Да, мы встречали такие проекты при работе. Сразу скажу, что от проекта к проекту отличались методы отложенной загрузки и выполнения скриптов. Однако мы немного подумали, и вообще сделали конфиг для nginx, который откладывает выполнение всех js на странице в автоматическом режиме. Что-то похожее делает Rocket-loader у Cloudflare, но грузятся и выполняются скрипты только при первом действии пользователя.
Как это работает, nginx на своей стороне дописывает к скриптам type="text/psscript" и скрипт перестает выполняться браузером. Далее при помощи JS создаются новые элементы script, которые загружаются в нужном порядке, и загрузка начинается после срабатывания события.
Важно: для того, чтобы скрипт работал правильно, нужно сделать так, чтобы первый экран отображался одинаково как с включенным так и с выключенным JS. Особенно это касается слайдеров, попапов и тд. И этот может существенно испортить другие показатели по Core Web Vitals, а относительно полезно только для синтетических тестов. Однако кому-то может помочь решить "нерешаемую" задачу.
Конфиг nginx JS-файлКак заставить это работать: Конфиг в секцию server, js в корень сайта с тем же именем.
Пишите ваши мнения в комментариях