Google анонсировал новый способ запуска JavaScript
Он ускорит работу веб-страниц.
Google анонсировал новый способ запуска JavaScript. Он ускорит работу веб-страниц
Зачем это Google
Чтобы добиться высоких результатов в INP, веб‑страница должна реагировать на все возможные взаимодействия пользователя. Однако INP может быть низким из‑за того, что некоторым JavaScript требуется много времени для запуска. Когда сценарии занимают много времени, они называются длительными задачами.
Проблема с длительными задачами в том, что они как медленный водитель на дороге — выезжает на скоростную полосу, замедляя движение остальным участникам. То есть остальные скрипты блокируются длительной задачей, в результате чего веб‑страница перестаёт отвечать. Пользователь ждёт, пока страница что‑то сделает после нажатия кнопки.
Google предлагает решение этой проблемы, при котором длительная задача ведёт себя как медленный автомобиль — съезжает на обочину, чтобы пропустить пожарную машину.
Обходные пути не работают
На сегодня существуют обходные пути при написании кода, которые помогают улучшить показатели взаимодействия с пользователем. Но работают они плохо, потому что были разработаны для другого.
В обходных сценариях длительная задача уходит в конец очереди более быстрых, но менее важных задач, и ждёт их завершения. Когда они завершаются, длительная задача начинает выполняться.
Решение для длительных задач
Это подход, который Google называет scheduler.yield. Scheduler.yield приостанавливает выполнение длительной задачи, чтобы перейти к задаче взаимодействия с пользователем. Как только сценарий взаимодействия с пользователем завершён, длинная задача переходит в начало очереди и начать выполняться снова.
Исходные испытания планировщика.
Запустить scheduler.yield можно в версии Chrome 115. Сейчас Google просит добровольцев процитировать функцию, чтобы собрать отзывы и понять, как она работает, прежде чем выкатывать официально.
В наших новостях всегда есть немного больше, чем у других. Подпишитесь на канал в Телеграм и читайте интересные новости первыми.