发布时间:2025 年 5 月 20 日
当某项 Web 平台功能在所有浏览器中实现后,便会进入“Baseline 新近可用”阶段。30 个月后,该功能会进入“Baseline 广泛可用”阶段,这是大多数网站可以采用功能而无需担心兼容性问题的阈值。本指南介绍了如何使用 Baseline,以及如何使用网站用户提供的数据来选择 Baseline 目标。
什么是 Baseline 目标?
Baseline 目标是开发者可以选择支持的一组 Web 功能,具体取决于这些功能的 Baseline 状态。Baseline 目标有两种类型:移动目标和固定目标。
移动目标(例如“Baseline 广泛可用”或“Baseline 新近可用”)是指其中包含的功能集可能会随时间变化的目标。如果您希望受支持的功能集随着新浏览器版本的发布而自动演变,那么移动目标就很有意义。
固定目标是指其中包含的功能集不会随时间变化的目标。一般来说,固定目标基于日历年。例如,“Baseline 2023”是一个固定目标,其中包含在 2023 年进入“Baseline 新近可用”阶段的一组 Web 功能。“Baseline 2023”不包含在 2023 年之后进入 Baseline 阶段的功能,这意味着“Baseline 2023”功能集永远不会发生变化。
如果可预测性和确定性至关重要,那么固定目标就很有意义,但它们可能会随着时间的推移而过时,因此在使用固定目标时,最好定期重新评估您的目标。
为什么要选择目标?
由于兼容性问题,Web 上的功能采用受到阻碍,这使得 Web 无法达到最佳状态。Baseline 不仅清晰地说明了浏览器中的功能支持问题,而且还有助于明确您何时可以使用某些功能。 通过选择反映您的受众群体和要求的目标,您可以放心地使用该目标组中的功能,而无需逐一检查各个功能。
使用数据选择 Baseline 目标
在可能的情况下,选择正确的 Baseline 目标应以数据为依据。当您掌握了数据后,选择哪个目标就会变得更容易,而且决策也会更加明智。
如果您有 真实用户监控 数据,可以了解 Baseline 目标与用户的对应关系。例如,如果您使用 Google Analytics,则可以使用 Google Analytics Baseline 检查器 免费获取此信息。
如需使用此工具,您需要使用 Google 账号进行身份验证,并允许该工具拥有只读权限来查看您的 Google Analytics 数据。然后,选择您要为其生成 Baseline 目标数据的 Google Analytics 媒体资源。完成这些步骤后,您将收到类似于以下内容的输出:
我们开始看到其他工具实现对 Baseline 的支持,这些工具可以动态显示您的受众群体对给定目标的支持程度。例如,RUMvision 包含一个信息中心,其中显示了您的受众群体对每个 Baseline 年份的支持程度。

如果我的分析或 RUM 提供商还没有 Baseline 目标报告,该怎么办?
如果您使用的分析或 RUM 工具尚未提供 Baseline 目标报告,但确实有关于浏览器版本的数据,您可以将真实数据与 baseline-browser-mapping 模块中的浏览器版本映射相结合。该模块提供了一个 JavaScript 函数 - getAllVersions()
-,该函数按名称和版本将浏览器映射到其 Baseline 年份和“广泛可用”支持状态。这些映射可以作为数组、键控对象或 CSV
提供。例如,Google Analytics Baseline 检查器使用此模块将分析数据与 Baseline 目标相结合。
此函数的输出还可以作为托管 JSON 或 CSV 文件提供,这些文件每天都会更新。all_versions_with_supports.csv 文件包含的数据可与分析提供商的浏览器版本数据进行匹配,其中包含以下字段:
browser:在baseline-browser-mapping中使用的浏览器名称version:浏览器的版本。有些浏览器仅使用主要版本号,有些则使用“主要版本号.次要版本号” major.minor。year:此浏览器版本支持的 Baseline 年份特征集。如果浏览器版本是在 2015 年 7 月确定 Baseline 支持之前发布的,则此字段将包含pre_baselinesupports:此字段包含支持这些功能集的浏览器版本的widely或newly,对于不支持其中任何一个功能集的版本,此字段为空。支持“新近可用”的所有浏览器版本也支持“广泛可用”。release_date:此浏览器版本的发布日期(如果有)。engine:核心 Baseline 浏览器的下游浏览器的引擎名称。仅包含基于 Blink 的浏览器,但未来可能会包含其他浏览器引擎。engine_version:此浏览器版本实现的 Chromium 版本。这用于确定下游版本支持的 Baseline 功能集。
随着新浏览器版本的发布以及不同浏览器的支持状态发生变化,此文件会频繁更新。请务必每天刷新数据。
如果我没有真实用户的支持数据,该怎么办?
您可能会遇到无法获取 Baseline 功能的真实用户数据的情况。好消息是,您可以通过 RUM Archive Insights 大致了解不同 Baseline 目标的支持情况,甚至可以按国家/地区进行过滤。虽然此数据并非特定于您网站的用户。它是一个通用信息工具,用于说明以下假设 通常是安全的:
- 较新的 Baseline 目标(例如当年或前一年)在用户中的支持度可能最低。不过,与任何 Baseline 目标一样,随着时间的推移,它们的支持度也会提高。
- 较旧的 Baseline 目标(尤其是“Baseline 广泛可用”)将得到很好的支持。如果不确定,那么“广泛可用”是一个绝佳的目标,它会随着 30 个月的时间窗口的推移而演变。
- 即使是更旧的 Baseline 目标(那些远远超出 30 个月的“广泛可用”窗口的目标)也会获得最佳支持。虽然“广泛可用”是一个不错的默认目标,但特殊用例需要严格的 SLA。
很可能,即使您选择的 Baseline 目标超过五年,您也可以采用目前未使用的功能。在最佳情况下,您可能已经在使用这些功能,但使用了可能不需要的 polyfill。
如何在项目中强制执行所选的 Baseline 目标?
Browserslist 是一种常用的方法,用于定位您要支持的浏览器。它在捆绑器和其他相关工具(例如 Babel 和 PostCSS)中用于确定是否需要转换甚至 polyfill 某些代码段。
现在可以将 Baseline 与 Browserslist 结合使用,这样,当您选择 Baseline 目标时,可以将其指定为有效的 Browserslist 查询。这可确保项目中的工具根据您选择的目标转换代码。如需了解详情,请参阅将 Baseline 与 Browserslist 结合使用。
不符合 Baseline 目标的功能怎么样?
选择 Baseline 目标后,您可能有一些想要使用的功能,但这些功能不属于该目标。Baseline 不会告诉您应该怎么做,是否考虑使用这些功能取决于您要构建的网站类型和预期受众群体。
例如,电子商务或 B2B 网站可能愿意降低支持阈值,并在用户支持时处理问题,而政府网站可能需要较高的支持阈值。 这里的一个重要经验法则是并非所有 Web 功能都会以相同的方式失败 。有很多方法可以根据功能失败的方式对其进行分类,但一种可能有用的功能分类方法如下:
- 增强功能 :如果在不受支持的浏览器中使用该功能,体验不会中断。体验可能会降级,但用户可能不会注意到。示例:
loading="lazy"。 - 附加功能 :该功能提供了一些可能很明显的附加福利,例如页面样式或某些功能的变化。如果该功能不受支持,用户可能不会注意到差异,除非在支持该功能的浏览器中进行比较。示例:Subgrid
- 关键功能 :如果该功能不受支持,用户将获得负面的用户体验,甚至可能完全中断。示例:File System Access API 用作中心且必要的功能。
您可能还会发现,目标之外的特定功能的支持度比您想象的要好。您可以了解有多少用户支持特定功能。Can I Use 能够根据您的分析数据检查对各个功能的支持情况。如果对您有帮助,RUMvision 还能够深入分析和探索功能级数据。
这样,您可以使用 Baseline 目标来减少需要仔细考虑的功能数量。您无需担心目标内的所有内容。如果目标之外有一两个功能特别有用,您可以使用相关工具进一步探索,并决定是否使用 polyfill 或将其用作渐进增强。
总结
每个 Web 应用都有不同的要求,从可以容忍更多不兼容问题的电子商务网站,到必须尽可能多地向用户提供可用性和可操作性的政府网站。这些计算必须由您自行完成,Baseline 的目标不是告诉您在采用新的 Web 功能时应该做出哪些决策,而是更多地关注如何做出决策。