Google анонсировала пробные версии origin для новой функции, доступной в Chrome прямо сейчас, которая поднимает скорость просмотра страниц на новый уровень
Google анонсировала новый способ запуска JavaScript, который улучшает отзывчивость веб-страниц, помогая издателям, которые используют его, превзойти своих конкурентов по новому основному веб-показателю.
В анонсе представлен краткий обзор способа турбонаддува веб-страниц.
Если эта пробная версия пройдет успешно, возможно, издатели на всех платформах и системах управления контентом захотят использовать ее, чтобы опередить своих конкурентов.
Проблема, которую решает Google
Взаимодействие с Next Paint (INP) – это показатель, который заменяет задержку первого ввода (FID).
Запуск INP в качестве основного показателя веб-жизни запланирован на март 2024 года.
Чтобы добиться высоких результатов в скором выпуске INP core web vital, веб-страница должна реагировать на все возможные взаимодействия пользователя.
Одна из причин низких показателей INP заключается в том, что некоторым JavaScript требуется много времени для запуска.
Когда выполнение этих сценариев занимает много времени, они называются длительными задачами.
Проблема с длинными задачами заключается в том, что они подобны медленному водителю на дороге, который выезжает на скоростную полосу, замедляя движение.
В настоящее время происходит то, что скрипты, управляющие взаимодействием с пользователем, блокируются длительной задачей, в результате чего веб-страница перестает отвечать.
Пользователь в этом сценарии ждет, пока страница что-то сделает после нажатия кнопки.
Сегодня на многих веб-страницах обычно происходит то, что при взаимодействии с пользователем приходится ждать завершения выполнения длительной задачи.
На рисунке ниже показано, как длительная задача блокирует выполнение важной задачи взаимодействия с пользователем.
Сценарий взаимодействия с пользователем, блокирующий длительную задачу
Google предлагает решение этой проблемы, при котором длительная задача ведет себя как медленный автомобиль, который съезжает на обочину, чтобы пропустить пожарную машину.
Существующие стратегии не работают
Уже существуют обходные пути при написании кода, которые помогают улучшить показатели взаимодействия с пользователем.
Но на самом деле они работают плохо, потому что были разработаны для решения других проблем, а не для взаимодействия с пользователем.
В пояснении Google говорится, что существующие стратегии приостанавливают выполнение длинной задачи, но отправляют ее в конец очереди всех других сценариев, многие из которых могут быть не столь важны, как длинная задача.
В этом типичном сценарии длительная задача, которая должна завершиться, должна подождать завершения менее важных сценариев, потому что сейчас она находится в конце очереди.
Текущие обходные пути в кодировании могут в конечном итоге ухудшить ситуацию вместо того, чтобы помочь.
Решение для длительных задач – планировщик.выход
Решением проблемы длительной задачи является подход, который Google называет scheduler.yield.
Что делает scheduler.yield – это приостановить выполнение длинной задачи, чтобы перейти к задаче взаимодействия с пользователем, которая может начать выполняться.
Как только сценарий взаимодействия с пользователем завершен, длинная задача может перейти в начало очереди и начать выполняться снова.
Вот иллюстрация, опубликованная Google, которая показывает, как длинную задачу можно разбить на более мелкие задачи, чтобы обеспечить выполнение важных сценариев взаимодействия с пользователем.
Исходные испытания планировщика.
Возможность запуска scheduler.yield доступен с Chrome 115, который был запущен 13 июля.
Google просит добровольцев протестировать новую функцию в “пробной версии origin”, чтобы собрать отзывы и понять, как она работает в реальном мире, прежде чем в конечном итоге сделать ее официальной функцией.
Пробная версия origin – это возможность принять участие в тестировании новой функции (информация о пробных версиях origin здесь).
Объявление Google объяснило:
“В постоянных усилиях по предоставлению новых API, которые помогут веб-разработчикам сделать свои сайты максимально быстрыми, команда Chrome в настоящее время запускает пробную версию origin для scheduler.yield начинается с версии Chrome 115.
scheduler.yield – предлагаемое новое дополнение к API планировщика, которое обеспечивает более простой и качественный способ возврата управления основному потоку, чем методы, на которые традиционно полагались ”.
Одна из потенциальных проблем с запущенным scheduler.yield на живом сайте это запасной вариант должен быть закодирован для не использующих хром 115-браузеров, так что сайт будет работать нормально для посетителей сайта не в Chrome 115, которые не поддерживают новую функцию.
Также есть способ запустить ее локально для тестирования:
“Если вы хотите поэкспериментировать с scheduler.yield локально, введите chrome://flags в адресной строке Chrome и выберите Включить из выпадающего списка в разделе “Экспериментальные функции веб-платформы”.
Это сделает scheduler.yield (и любые другие экспериментальные функции) доступными только в вашем экземпляре Chrome ”.
Шанс опередить конкурентов
В настоящее время эта новая функция находится в режиме тестирования.
Но, учитывая, что INP должен стать официальным основным показателем веб-жизни в марте 2024 года, может быть полезно следить за этой новой функцией Chrome и внедрять ее раньше, чем позже, когда она выйдет из экспериментальной фазы.
Внедрение ее сейчас может быть хорошим способом опередить конкурентов, пока существует запасной вариант для браузеров, которые еще не внедрили новую функцию.