如何选择基准目标值

发布时间:2025 年 5 月 20 日

当某项 Web 平台功能在所有浏览器中实现后,就会进入“Baseline 新近可用”阶段。30 个月后,相应功能便会进入“Baseline 广泛可用”阶段,这意味着大多数网站都可以采用相应功能,而无需担心兼容性问题。本指南介绍了如何使用基准,以及如何根据网站用户提供的数据选择基准目标。

什么是基准目标?

Baseline 目标是一组 Web 功能,开发者可以根据其 Baseline 状态选择支持这些功能。基准目标值有两种类型:移动目标值和固定目标值。

移动目标(例如“Baseline 广泛可用”或“Baseline 新近可用”)是指所包含的功能集可能会随时间变化的目标。如果您希望支持的功能集随着新浏览器版本的发布而自动发展,那么移动目标就很有意义。

固定目标是指特征集不会随时间变化的目标。一般来说,固定目标是根据日历年设定的。例如,2023 年基准是一个固定目标,其中包含在 2023 年进入“Baseline 新近可用”阶段的一组 Web 功能。2023 年基准不会包含在 2023 年之后成为基准的功能,这意味着 2023 年基准功能集永远不会更改。

在可预测性和确定性至关重要的情况下,固定目标非常有用,但随着时间的推移,它们可能会过时,因此在使用固定目标时,最好定期重新评估目标。

为什么要选择目标?

由于存在兼容性问题,网络上的功能采用率受到限制,这阻碍了网络发挥其应有的出色性能。Baseline 不仅能清晰传达浏览器对功能的支持情况,还能清晰传达何时可以使用某些功能,因此非常实用。选择符合您的受众群体和要求的定位后,您就可以放心地使用该目标群体中的功能,而无需逐一检查各个功能。

使用数据选择基准目标

选择正确的基准目标应尽可能基于数据做出决策。有了这些数据,您就可以更轻松、更明智地选择目标受众群体。

如果您有网站的实时用户监控数据,可以了解基准目标值与您的用户之间的对应关系。例如,如果您使用 Google Analytics,可以使用 Google Analytics 基准检查器免费获取这些信息。

如需使用此工具,您需要在 Google Analytics 中创建新的探索,向报告中添加一些指标和维度,然后将报告导出为 TSV 文件。这些说明中详细介绍了此流程。将 TSV 文件导入检查器后,您应该会看到如下输出:

Google Analytics Baseline 检查器工具,显示了对各种 Baseline 目标的支持情况(以百分比表示)。支持力度从较新的目标到较旧的目标逐渐增加。
Google Analytics Baseline 检查器工具的输出。该工具会细分每个 Baseline 目标的真实用户支持情况。请注意,较旧的基准目标在实际用户中获得了更广泛的支持。

我们开始看到其他工具实现对 Baseline 的支持,这可让您动态了解有多少受众群体支持给定的目标。例如,RUMvision 包含一个信息中心,用于显示有多少受众群体支持每个 Baseline 年份。

RUMvision 的 Baseline 数据显示了每个 Baseline 目标的支持数据,包括功能级支持数据的细分。

如果我的分析或 RUM 提供商尚未提供基准目标报告,该怎么办?

如果您使用的分析或 RUM 工具尚未提供基准目标报告,但确实有浏览器版本数据,您可以将自己的实际数据与 baseline-browser-mapping 模块中的浏览器版本映射联接起来。该模块提供了一个 JavaScript 函数 - getAllVersions(),该函数按名称和版本将浏览器映射到其基准年和广泛可用的支持状态。这些映射可以数组、键控对象或 CSV 的形式提供。例如,Google Analytics 基准检查器使用此模块将分析数据与基准目标联接起来

此函数的输出结果还以托管的 JSON 或 CSV 文件的形式提供,并且每天都会更新。all_versions_with_supports.csv 文件包含可与分析提供商的浏览器版本数据相匹配的数据,其中包含以下字段:

  • browser:浏览器名称,如 baseline-browser-mapping 中所用
  • version:浏览器的版本。有些浏览器仅使用主要版本号,而有些浏览器则使用major.minor号。
  • year:相应浏览器版本支持的基准年功能集。如果浏览器版本是在 2015 年 7 月确定基准支持之前发布的,则此字段将包含 pre_baseline
  • supports:对于支持这些功能集的浏览器版本,此字段包含 widelynewly;对于不支持任一功能集的版本,此字段为空。支持“新近推出”的所有浏览器版本也支持“广泛推出”。
  • release_date:相应浏览器版本的发布日期(如有)。
  • engine:核心基准浏览器下游的浏览器的引擎名称。目前仅包含基于 Blink 的浏览器,但未来可能会包含其他浏览器引擎。
  • engine_version:相应浏览器版本实现的 Chromium 版本。用于确定下游版本支持哪个基准功能集。

随着新浏览器版本的发布以及不同浏览器的支持状态发生变化,此文件会经常更新。请务必每天刷新数据。

如果我没有真实用户的支持数据,该怎么办?

您可能会遇到这样一种情况:对于属于 Baseline 的功能,您无法获取真实的用户数据。好消息是,您可以通过 RUM 归档数据分析大致了解不同基准目标的支持情况,甚至可以按国家/地区进行过滤。不过,这些数据并非专门针对您网站的用户。它是一个通用信息工具,用于证明以下假设通常是安全的:

  • 较新的 Baseline 目标(例如当年或前一年)在用户中的支持度可能最低。不过,与任何基准目标一样,随着时间的推移,它们将获得更好的支持。
  • 旧版 Baseline 目标(尤其是 Baseline 广泛可用)将得到充分支持。如果不确定,您可以将“广泛可用”作为目标,该目标会随着 30 个月期限的推移而不断变化。
  • 即使是远超 30 个月“广泛可用”期限的旧版 Baseline 目标,也会获得最佳支持。虽然“广泛可用”是一个不错的默认目标,但特殊使用情形需要严格的 SLA。

即使您选择的 Baseline 目标已超过五年,您也可能能够采用目前尚未使用的一些功能。在最佳情况下,您可能已在使用这些功能,但使用了可能不需要的 Polyfill

如何在项目中强制执行所选的基准目标?

Browserslist 是一种常用的方法,可用于指定您要支持的浏览器。它用于打包程序和其他关联工具(例如 BabelPostCSS),以确定是否需要转换甚至填充某些代码位。

现在,您可以将 Baseline 与 Browserslist 搭配使用,这样一来,当您选择 Baseline 目标平台时,就可以将其指定为有效的 Browserslist 查询。这样可确保项目中的工具根据您选择的目标转换代码。如需了解详情,请参阅将 Baseline 与 Browserslist 搭配使用

如果某个功能未达到我的基准目标,会怎么样?

选择基准目标后,您可能希望使用一些不在该目标范围内的功能。Baseline 无法告诉你此处应采取什么措施,而您是否要考虑使用这些功能取决于您要构建的网站类型和预期受众群体。

例如,电子商务网站或 B2B 网站可能愿意降低支持门槛,并根据用户支持情况来处理问题,而政府网站可能需要较高的支持门槛。这里的一个重要经验法则是,并非所有 Web 功能都会以相同的方式失败。有很多方法可以根据功能失败的方式对功能进行分类,但一种可能很有用的功能分类方法如下:

  • 增强功能:如果在不受支持的浏览器中使用该功能,体验不会中断。体验可能会有所下降,但用户可能不会注意到。示例:loading="lazy"
  • 附加:该功能提供了一些可能很明显的附加好处,例如网页样式或某些功能的变化。如果浏览器不支持该功能,用户可能不会注意到差异,除非在支持该功能的浏览器中进行比较。示例:子网格
  • 严重:如果不支持相应功能,用户体验会很差,甚至完全无法使用。示例:File System Access API 用作核心必要功能。

您可能还会发现,目标之外的特定功能比您想象的更受支持。您可以了解有多少用户支持特定功能。Can I Use 能够根据您的分析数据检查对各个功能的支持情况。如果需要,RUMvision 还能够深入分析和探索功能级数据。

这样一来,您就可以使用 Baseline 目标来减少需要仔细考虑的功能数量。您无需担心目标中的任何内容。如果有一两项功能不在您的目标范围内,但非常有用,您可以使用相关工具进一步探索,并决定是否进行 Polyfill 或用作渐进式增强功能。

总结

每个 Web 应用都有不同的要求,从可以容忍更多不兼容问题的电子商务网站,到必须尽可能多地向用户提供可用且可运行的政府网站。这些计算必须由您自行完成,Baseline 的目标不是告诉您在采用新的 Web 功能时应做出哪些决策,而是更多地关注如何做出决策。