发布时间:2025 年 11 月 21 日
从历史上看,Target.com 上的浏览器支持主要基于支持在 Target.com 上购物的所有用户。此政策会在重大决策点发生变化,例如完全停止对 Internet Explorer 的支持,或以特定最低版本的浏览器为目标,以获取高价值功能。这种情况每隔几年会在需要时发生一次。
由于没有关于要定位的浏览器和功能的渐进式政策,Target.com 仅允许在代码库中使用现代功能,并采用 polyfill 和转译等强硬的解决方案来支持非常过时的 JavaScript 版本。WebDX Community Group 推出 Baseline 后,Target.com 的利益相关者认为,现在是考虑寻找更合适的最低支持目标的时候了。
借助 Baseline,Target 现在可以放心地了解受支持的浏览器中可用的功能,并可以识别通过渐进增强和填充作为可能的后备方案而变得可用的最新功能。
问题
每天都有数十位工程师为 Target.com 贡献代码。在代码审核中,经常会使用 Can I use 作为资源来指出与 Target.com 支持的浏览器版本不兼容的功能。如果工程师不断收到要求更改代码以优先使用旧版功能而非新版功能的评论,那么他们就会避免使用新的 Web 功能。然后,Target 会回退到使用有效的“旧”技术,但使用现代功能的机会会延迟到以后。使用现代 Web 功能通常可以提供更好的开发者体验,还可以通过减少代码量来提供更好的用户体验。
一种数据驱动型浏览器支持方法
Target.com 具有定义了最低支持浏览器版本的 webpack 配置。从历史上看,很难证明提高这些最低支持的浏览器版本是合理的。截至 2025 年初,相关规则如下:
- Chrome、Edge 和 Firefox 的当前版本和前两个版本。
- Safari 11 及更高版本。
由于 Target 在 iOS 设备上通过 Safari 获得的流量和销售额非常高,因此 Safari 得到了更周到的对待。最初,我们经过深思熟虑后决定将 Safari 11 设置为最低开发版本。这一决定使得 Target.com 只能使用 2017 年及之前可用的 Web 功能。
在 Target 将 Baseline 集成到其开发工作流中的第一步,他们采用了数据驱动的方法。通过研究,Target 发现 Safari 版本 11 至 14 对业务的影响非常小,具体来说,仅占 Target.com 需求销售额的 0.0001%。鉴于此,Target 意识到,移除这些过时浏览器版本的转译和填充功能将为提升网站性能带来重大机遇。
其他研究表明,Safari 15.4 是第一个至少贡献了 0.5% 需求销售额的 Safari 版本,此后 Safari 15 的每个次要版本都具有类似的影响。每次 Target 运行 A/B 测试时,如果能将需求销售额提高 0.5%,就非常有价值,这让我们得出结论:Safari 的最低支持版本应在版本 15 左右。
我们在本次研究中发现了一个有趣的趋势,那就是旧版 Safari 浏览器的使用率下降得非常快。截至 2024 年 9 月,Safari 15 仅占 Target.com 需求销售额的 0.94%。2025 年 1 月,这一比例降至 0.67%,到 2025 年 5 月进一步降至 0.45%,到 2025 年 11 月则为 0.32%。Target 从中了解到,如果确定了占整个需求销售额一定百分比的实际货币阈值,就可以自动结束对这些浏览器的支持,并在年底前实现 Safari 16 上的下一个主要版本。
停止支持并不意味着系统会屏蔽不受支持的浏览器。使用这些浏览器的用户可能仍然能够找到购买途径,但在某些情况下,他们可能会遇到体验不佳的情况。在做出更改后,分析人员继续使用数据驱动的方法,但报告显示业务指标没有受到可衡量的影响。此外,Target 还在考虑添加一个横幅,在不受支持的浏览器版本上显示,警告用户体验会变差。
为 Target.com 选择基准目标
Target 的 Web 工程师成立了一个基准工作组,将这些工作结合起来,利用现代功能和不断变化的目标(即要支持哪些浏览器)来推动政策的制定。他们使用 Baseline 的工具,查看了每个年度的最低浏览器集。最接近 Target 新政策的目标是 Baseline 2022:
{
"chrome": "108",
"edge": "108",
"firefox": "108",
"ios": "16",
"safari": "16"
}
为了达到该基准,Target 需要将其浏览器政策调整为至少支持 Safari 16,而不是当前版本 15.4。这会影响不到 0.5% 的转化购物者的体验。即便如此,这一比例仍在不断下降,因此 Target 希望在 2025 年底之前更新其官方政策,使其与 Baseline 2022 相关联。这样一来,Target.com 的开发者就可以将目标更改为比每年发布的基准晚大约 3 年。
总体而言,由于代码转译和添加的 Polyfill 较少,Target.com 的 Webpack 软件包更小。Target 相信,随着时间的推移,此目标会发生变化。希望明年此时,Baseline 2023 可以得到采用,其中包含许多出色的功能,例如容器查询、:has 选择器、inert 属性等。
查看较新的 Baseline 功能集
目标基准工作组不会止步于 2022 年基准。从 Baseline 2023 的功能来看,其中许多功能都处于能够支持但没有备份(例如填充)的临界状态。Target 感兴趣的 Baseline 2023 中的每项功能都需要满足以下条件:
- 清楚说明该功能的用途。
- 记录了其使用方式如何改进 Target.com,包括开发者体验改进。
- 找到一个合适的测试用例,以便在 Target.com 代码库中实现该功能。
- 如有必要,请记录要使用的后备方案,包括渐进增强或其他通过功能检测提供的解决方案。
- 最后,预计何时能获批使用该功能?现在可以使用吗?还是应该等待达到某个未来的阈值?
一个示例是 inert 属性。在 Safari 中使用 inert 的最低版本为 15.5,这意味着 Target.com 即将能够使用它!与当前的 JavaScript 解决方案相比,Target.com 的许多模态框实现都可以通过使用此属性获益。让工程师撰写有关此功能的报告有助于知识共享,并为下一步放宽浏览器政策做好准备。这有助于说明,放弃对业务价值较低的浏览器版本的支持可以解锁确实有价值的功能。该功能可以在功能标志下进行设计、审核和部署,以便在可以使用时做好准备。
除此之外,另一位工程师将遵循相同的流程来使用容器查询,该功能现已成为 Baseline 广泛可用的功能。容器查询可以与 Polyfill 搭配使用,但 Polyfill 存在已知的性能问题。Target 提出的解决方案是,仅将容器查询用作渐进式增强功能,直到浏览器最低要求提高到完全支持该功能为止。
此流程非常适合 Target.com,因为当功能最低版本的使用量达到足够高的水平时,就不再需要渐进式增强,可以直接使用该功能。在最近的一次审核中,我们发现 Target.com 运送了许多不必要的多填充,因此在其应用中实现 Baseline 有助于控制此类技术债务。
将基准概念与网站性能相关联
性能对于任何零售网站都至关重要。在 Target.com 上工作的开发者有一个共同的信念,那就是交付的 JavaScript 过多。如果交付给用户的 JavaScript 软件包减少了 5%,那是一项重大成就,但也不会显著改善 Target.com 的 Core Web Vitals。不过,如果 Target 能实现这一目标 10 次,软件包大小将减少 50%,这将显著有助于实现 Target 的性能目标。
就 Target 的 Baseline 方法而言,它让 Target.com 的工程师开始思考在模态框、无障碍功能需求、弹出式信息框、轮播界面、手风琴界面和其他常见用户体验问题方面所依赖的 JavaScript 数量。这些功能都需要填充或自定义 JavaScript 解决方案,这会导致应用的 JavaScript 膨胀。由于 Target 使用 Baseline,浏览器目标会随着时间的推移而演变,因此可以放宽包含新功能的政策。Target 希望随着时间的推移,减少代码转译量、减少功能填充量,甚至在时机成熟时采用 Web 组件。通过关注项目工具链中提供的 Polyfill 和目标浏览器,Target.com 的 JavaScript Bundle 大小已减少 10%。这是在采用任何新功能之前。这一指标应会逐年改善,并且与 Target 在 Target.com 性能改进方面所做的大胆投资直接相关。
要点总结
Target.com 拥有基准目标值,并精心制作了“新近可用”和“广泛可用”的 Web 功能基准报告,这已成为一项强大的工具。以下是一些关键结果:
- 浏览器目标已从支持 8 年前发布的浏览器改为支持 3 年前发布的浏览器。
- 到 2025 年底,将达到 2022 年基准的基准目标。
- Target.com 的 JavaScript bundle 总大小已缩减 10%。
- 提供不到 1% 业务的长尾旧版浏览器正以每年约 300% 的速度减少(从 2024 年 9 月的 0.94% 降至 2025 年 11 月的 0.32%)。
Target 意识到 Web 的发展速度比以往任何时候都快,因此积极采用新功能。通过整理这些功能,工程师可以提前做好准备和规划,以便在 Target 解锁每个功能时及时使用,并放心地信任为大型零售网站做出贡献的工程师,知道要使用哪些功能以及何时可以使用这些功能。