Как выбрать базовую цель

Опубликовано: 20 мая 2025 г.

Когда функция веб-платформы внедряется во все браузеры, она становится доступной на базовом уровне (Baseline Newly available). Через 30 месяцев эта функция становится широко доступной на базовом уровне (Baseline Widely available), что является порогом, после которого большинство веб-сайтов могут внедрять функции без проблем с совместимостью. В этом руководстве объясняется, как использовать базовый уровень (Baseline) и, используя данные, полученные от пользователей вашего веб-сайта, как выбрать целевой базовый уровень.

Что такое базовый целевой уровень?

Базовый целевой показатель — это группа веб-функций, поддержку которых разработчики могут выбрать в зависимости от их базового статуса. Существует два типа базовых целевых показателей: изменяющиеся целевые показатели и фиксированные целевые показатели.

Целевые показатели, такие как «Базовый уровень: широко доступен» или «Базовый уровень: недавно доступен», — это показатели, набор поддерживаемых функций которых может меняться со временем. Использование целевых показателей имеет смысл в тех случаях, когда необходимо, чтобы набор поддерживаемых функций автоматически изменялся по мере выпуска новых версий браузера.

Фиксированные целевые показатели — это показатели, набор функций которых не меняется со временем. Как правило, фиксированные целевые показатели основаны на календарных годах. Например, «Базовый уровень 2023» — это фиксированный целевой показатель, который включает набор веб-функций, ставших доступными в 2023 году. «Базовый уровень 2023» не будет включать функции, ставшие доступными после 2023 года, а это значит, что набор функций «Базового уровня 2023» никогда не изменится.

Фиксированные целевые показатели имеют смысл в случаях, когда предсказуемость и детерминизм имеют первостепенное значение, но со временем они могут устареть, поэтому при использовании фиксированных целевых показателей целесообразно регулярно пересматривать их.

Почему стоит выбрать цель?

Внедрение новых функций в веб-разработке сдерживается проблемами совместимости, что мешает веб-технологиям стать настолько качественными, насколько они могли бы быть. Базовая модель не только вносит ясность в вопрос поддержки функций в браузерах, но и помогает определить, когда можно использовать те или иные функции. Выбрав целевую аудиторию, отражающую ваши потребности и требования, вы можете быть уверены в использовании функций в рамках этой целевой группы, не проверяя каждую функцию по отдельности.

Используйте данные для выбора базового целевого уровня.

Выбор оптимального базового целевого уровня должен, по возможности, основываться на данных. Когда у вас есть данные, выбор целевого уровня становится проще и гораздо более обоснованным решением.

Если у вас есть данные мониторинга реальных пользователей для вашего сайта, вы можете узнать, как базовые показатели соответствуют вашим пользователям. Например, если вы используете Google Analytics, бесплатный способ получить эту информацию — воспользоваться инструментом проверки базовых показателей Google Analytics .

Для использования этого инструмента вам потребуется авторизоваться с помощью своей учетной записи Google и предоставить инструменту разрешение только на чтение для просмотра ваших данных Google Analytics. Затем выберите ресурс Google Analytics, для которого вы хотите сгенерировать базовые целевые данные. После выполнения этих шагов вы получите результат, похожий на следующий:

Инструмент проверки базовых показателей Google Analytics показывает процентное распределение поддержки различных базовых показателей. Поддержка увеличивается от более новых показателей к более старым.
Результаты работы инструмента Google Analytics Baseline Checker. Инструмент сегментирует поддержку реальных пользователей для каждой целевой базовой линии. Обратите внимание, что более старые целевые базовые линии пользуются большей поддержкой среди реальных пользователей.

Мы начинаем видеть, как другие инструменты внедряют поддержку Baseline, что позволяет динамически отслеживать, какая часть вашей аудитории поддерживает ту или иную целевую аудиторию. Например, RUMvision включает в себя панель мониторинга, которая показывает, какая часть вашей аудитории поддерживает каждый год в рамках Baseline.

В базовых данных RUMvision представлены данные о поддержке для каждой целевой платформы, включая подробную информацию о поддержке на уровне функций.

Что делать, если у моего поставщика аналитических услуг или RUM еще нет отчета о базовых целевых показателях?

Если вы используете инструмент аналитики или RUM, который еще не предоставляет отчет о базовых целевых показателях, но имеет данные о версиях браузеров, вы можете объединить ваши реальные данные с сопоставлением версий браузеров из модуля baseline-browser-mapping . Модуль предоставляет функцию JavaScript — getAllVersions() — которая сопоставляет браузеры по имени и версии с годом их базовой версии и статусом поддержки «Широко доступны». Эти сопоставления могут быть предоставлены в виде массивов, объектов с ключами или в формате CSV. Например, Google Analytics Baseline Checker использует этот модуль для объединения аналитических данных с базовыми целевыми показателями .

Результаты работы этой функции также доступны в виде размещенных JSON- или CSV-файлов , которые обновляются ежедневно. Файл all_versions_with_supports.csv содержит данные, которые можно сопоставить с данными о версиях браузеров вашего поставщика аналитики по следующим полям:

  • browser : название браузера, используемое в baseline-browser-mapping
  • version : версия браузера. Некоторые браузеры используют только основной номер версии, другие — основной и дополнительный номера версии.
  • year : базовый набор функций, поддерживаемый данной версией браузера. Если версия браузера была выпущена до июля 2015 года, когда можно определить поддержку базовой версии, это поле будет содержать pre_baseline
  • supports : это поле содержит значения widely или newly для версий браузеров, поддерживающих указанные наборы функций, и пустое для версий, которые не поддерживают ни один из этих наборов функций. Все версии браузеров, поддерживающие Newly available, также поддерживают Widely available.
  • release_date : дата выпуска данной версии браузера, если таковая имеется.
  • engine : Название движка для браузеров, использующих базовый браузер Baseline. Включены только браузеры на основе Blink, но в будущем могут быть представлены и другие браузерные движки.
  • engine_version : версия Chromium, реализованная в данной версии браузера. Она используется для определения того, какой набор функций Baseline поддерживает данная версия.

Этот файл часто обновляется по мере выхода новых версий браузеров и изменения статуса поддержки различных браузеров. Рекомендуется обновлять данные ежедневно.

Что делать, если у меня нет данных от реальных пользователей, предоставленных службой поддержки?

Вы можете оказаться в ситуации, когда не сможете получить реальные данные о пользователях, когда речь идёт о базовых функциях. Хорошая новость заключается в том, что вы можете получить общее представление о поддержке различных целевых показателей базовой версии с помощью RUM Archive Insights , что позволяет даже фильтровать данные по странам. Хотя эти данные не будут касаться конкретно пользователей вашего сайта, это общий информационный инструмент, демонстрирующий, что следующие предположения, как правило, являются безопасными:

  • Более новые базовые целевые показатели — например, за текущий или предыдущий год — скорее всего, будут пользоваться наименьшей поддержкой среди ваших пользователей. Однако, как и любые другие базовые целевые показатели, со временем их поддержка улучшится.
  • Более старые целевые показатели базового уровня, особенно показатель «Широко доступен», будут хорошо поддержаны. В случае сомнений, «Широко доступен» — это отличный целевой показатель, который меняется по мере продвижения 30-месячного периода.
  • Даже более старые целевые показатели базовой версии — те, которые значительно превышают 30-месячный период широкой доступности — будут иметь наилучшую поддержку. Хотя широкая доступность является хорошим целевым показателем по умолчанию, она не подходит для особых случаев использования, требующих строгих соглашений об уровне обслуживания (SLA).

Вполне вероятно, что даже если вы выберете базовую версию, которой более пяти лет, вы сможете внедрить функции, которые сейчас не используете. В лучшем случае, вы, возможно, уже используете эти функции, но с полифиллами, которые вам могут и не понадобиться .

Как мне принудительно установить выбранный базовый целевой уровень в своем проекте?

Browserslist — это широко используемый метод определения поддерживаемых браузеров. Он применяется в сборщиках и других связанных инструментах, таких как Babel и PostCSS, для принятия решения о необходимости преобразования или даже полифиллинга определенных фрагментов кода.

Теперь можно использовать Baseline с Browserslist, так что при выборе целевого объекта Baseline вы можете указать его как допустимый запрос Browserslist. Это гарантирует, что инструменты в вашем проекте будут преобразовывать код в соответствии с выбранным целевым объектом. Для получения дополнительной информации см. раздел «Использование Baseline с Browserslist» .

А что насчет функций, которые не соответствуют моему базовому целевому показателю?

После выбора базового целевого уровня у вас могут быть функции, которые вы хотите использовать, но которые не входят в этот целевой уровень. Базовый уровень не указывает, что именно вам следует делать, и целесообразность использования этих функций зависит от типа создаваемого вами веб-сайта и предполагаемой аудитории.

Например, веб-сайты электронной коммерции или B2B могут быть готовы к более низкому порогу поддержки и решать проблемы по мере их возникновения у пользователей, в то время как государственные веб-сайты могут требовать высокого порога поддержки. Важное эмпирическое правило здесь заключается в том, что не все веб-функции дают сбои одинаково . Существует множество способов классификации функций по тому, как они дают сбои, но один из способов сгруппировать функции, которые могут быть полезны, выглядит примерно так:

  • Улучшение: Если функция используется в неподдерживаемом браузере, это не нарушает работу. Возможно, качество работы ухудшится, но это вряд ли будет заметно пользователю. Пример: loading="lazy" .
  • Аддитивный эффект: Эта функция обеспечивает некоторые дополнительные преимущества, которые могут быть заметны — например, изменения в стиле страницы или некоторых функциях. Разница может быть незаметна для пользователей, если эта функция не поддерживается, за исключением сравнения в браузере, который её поддерживает. Пример: Подсетка
  • Критически важно: если функция не поддерживается, пользователь столкнется с негативным пользовательским опытом — возможно, даже с полной неработоспособностью системы. Пример: API доступа к файловой системе, используемый в качестве центральной и необходимой функции.

Вы также можете обнаружить, что определенные функции, не входящие в вашу целевую аудиторию, поддерживаются лучше, чем вы думаете. Можно понять, сколько ваших пользователей используют ту или иную функцию. Can I Use позволяет проверять поддержку отдельных функций на основе ваших аналитических данных. RUMvision также позволяет детально изучать данные на уровне отдельных функций, если это вам полезно.

Таким образом, вы можете использовать свою базовую цель, чтобы сократить количество функций, которые необходимо тщательно обдумать. Все, что находится внутри вашей цели, вам не нужно учитывать. Если есть одна или две функции за пределами вашей цели, которые были бы особенно полезны, у вас есть инструменты для дальнейшего изучения и принятия решения о том, следует ли использовать полифил или применять в качестве поэтапного улучшения.

Заключение

Каждое веб-приложение имеет свои требования — от сайта электронной коммерции, который может допускать больше проблем с совместимостью, до правительственного веб-сайта, который должен быть абсолютно доступен и работоспособен для как можно большего числа пользователей. Эти расчеты вам придется производить самостоятельно, и цель Baseline не в том, чтобы указывать вам, какие решения принимать при внедрении новых веб-функций, а скорее в том, как это делать .