Вот что вам нужно знать:
- Свойство
id
манифеста позволяет указать уникальный идентификатор для вашего PWA. - Свойство
protocol_handlers
позволяет автоматически регистрировать PWA в качестве обработчика протокола после установки. - Пробная версия Priority Hints Origin позволяет вам указать приоритет загрузки ресурсов.
- Вы можете принудительно установить версию Chrome на 100, чтобы проверить, как ваш код отреагирует на трехзначный номер версии.
- Все видео с Chrome Dev Summit доступны онлайн.
- И это еще не все.
Меня зовут Пит ЛеПейдж , и я наконец-то снимаю в студии . Давайте углубимся в детали и посмотрим, что нового появилось в Chrome 96 для разработчиков.
id
манифеста для PWA
Когда пользователь устанавливает PWA, браузеру нужен способ его уникальной идентификации. Но до недавнего времени спецификация манифеста веб-приложения не указывала, как идентифицировать PWA, оставляя браузерам выбор и приводя к разным реализациям. В некоторых браузерах используется start_url
, а в других — путь к файлу манифеста.
Это делает невозможным изменение любого из этих полей без нарушения процесса установки. Теперь есть новое необязательное свойство id
, которое позволяет вам явно определить идентификатор, используемый для вашего PWA.
Добавление свойства id
в манифест устраняет зависимость от start_url
или местоположения манифеста и позволяет обновлять эти поля.
{
...
id: "/?homescreen=1",
start_url: "/?homescreen=1",
...
}
Поддержка свойства id
появится в браузерах на базе Chromium для настольных компьютеров, начиная с Chrome 96. Поддержка для мобильных устройств, которые в настоящее время используют URL-адрес манифеста в качестве уникального идентификатора, должна появиться в первой половине 2022 года.
Если у вас уже есть PWA в производстве и вы хотите добавить id
в свой манифест, вам нужно будет использовать идентификатор, назначенный браузером. Вы можете найти id
на панели Manifest панели Application в Dev Tools.
Для совершенно нового PWA вы можете установить id
на любое строковое значение, но помните, что вы не сможете изменить его в будущем, поэтому выбирайте обдуманно.
{
...
id: "SquooshApp",
start_url: "/?homescreen=1",
...
}
Для получения дополнительной информации ознакомьтесь с разделом Уникальная идентификация PWA с помощью свойства идентификатора манифеста веб-приложения .
Обработчики протоколов URL для PWA
Веб-приложения могут использовать navigator.registerProtocolHandler()
для регистрации в качестве обработчика протокола. Например, Gmail может зарегистрировать протокол mailto
. Затем, когда пользователь нажимает на ссылку с префиксом mailto:
открывается Gmail, что упрощает отправку электронного письма пользователем.
Начиная с Chrome 96, PWA может регистрироваться как обработчик протоколов в рамках своей установки. Чтобы сделать это для вашего PWA, добавьте свойство protocol_handlers
в манифест вашего веб-приложения, укажите protocol
вы хотите обрабатывать, и url
, который должен открываться при нажатии.
...
"protocol_handlers": [
{
"protocol": "web+tea",
"url": "/tea?type=%s"
},
{
"protocol": "web+coffee",
"url": "/coffee?type=%s"
}
]
}
Здесь есть некоторые ограничения, и вы не можете просто зарегистрировать любой протокол, поэтому ознакомьтесь с разделом Регистрация обработчика протокола URL для PWA, чтобы получить полную информацию и узнать, как можно использовать синтаксис web+
для создания собственных протоколов!
Приоритетные подсказки (исходный пробный период)
Когда браузер анализирует веб-страницу и начинает обнаруживать и загружать ресурсы, такие как изображения, скрипты или CSS, он назначает им приоритет выборки, чтобы попытаться оптимизировать загрузку страницы. Браузеры довольно хороши в назначении приоритетов, но не во всех случаях могут быть оптимальными.
Priority Hints — это экспериментальная функция, доступная в качестве пробной версии, начиная с Chrome 96, и может помочь оптимизировать Core Web Vitals. Атрибут importance
позволяет указать приоритет для таких типов ресурсов, как CSS, шрифты, скрипты, изображения и iframe.
<!-- We don't want a high priority for this above-the-fold image -->
<img src="/not-important.svg" importance="low">
<!-- Initiate an early fetch for a resource, but de-prioritize it -->
<link rel="preload" href="/script.js" as="script" importance="low">
<script>
fetch('https://example.com/', {importance: 'high'})
.then(data => {
// Trigger a high priority fetch
});
</script>
Например, вот страница Google Flights. Это фоновое изображение — самая большая контентная отрисовка (LCP).
Давайте посмотрим, как он загружается с подсказками приоритета и без них. При установке high
приоритета на фоновом изображении LCP падает с 2,6 до 1,9 секунд.
Ознакомьтесь с разделом Оптимизация загрузки ресурсов с помощью API Fetch Priority, где вы найдете все подробности, узнаете, как зарегистрироваться для участия в пробной версии Origin, а также увидите несколько замечательных примеров того, как это может помочь улучшить производительность рендеринга.
Эмулировать Chrome 100 в строке UA
В начале следующего года мы достигнем Chrome 100, трехзначного номера версии. Любой код, который проверяет номера версий или анализирует строку UA, следует проверить, чтобы убедиться, что он обрабатывает три цифры.
Начиная с Chrome 96, появился новый флаг #force-major-version-to-100
, который изменит текущий номер версии на 100, чтобы вы могли убедиться, что все работает так, как и ожидалось.
Подробную информацию см. в разделе Принудительное изменение основной версии Chrome на 100 в строке User-Agent .
Саммит разработчиков Chrome
Chrome Dev Summit завершен. Все видео и контент доступны онлайн. Посетите сайт Chrome Dev Summit или, если вы пропустили основной доклад или прямую трансляцию, посмотрите плейлист CDS на канале Chrome Developers на YouTube .
И многое другое!
Конечно, есть еще много чего.
- Функция обратного кэширования (
bfcache
) теперь доступна в стабильной версии и позволяет Chrome соответствовать Firefox и Safari.
Дальнейшее чтение
Это охватывает только некоторые из ключевых моментов. Проверьте ссылки ниже для дополнительных изменений в Chrome 96.
- Что нового в Chrome DevTools (96)
- Устаревание и удаление Chrome 96
- Обновления ChromeStatus.com для Chrome 96
- Что нового в JavaScript в Chrome 96
- Список изменений в исходном репозитории Chromium
- Календарь релизов Chrome
Подписаться
Чтобы оставаться в курсе событий, подпишитесь на канал Chrome Developers на YouTube , и вы будете получать уведомления по электронной почте каждый раз, когда мы выпускаем новое видео.
Меня зовут Пит ЛеПейдж, и как только выйдет Chrome 97, я сразу же расскажу вам, что нового в Chrome!