如何看待基准和 polyfill

发布时间:2025 年 3 月 18 日

多填充项长期以来都是 Web 开发者体验的一部分,因为它们会尝试为并非所有浏览器都支持的 Web 功能提供支持。polyfill 似乎是 Web 开发者工具包中不可或缺的工具,但要将如此复杂的关注领域提炼成一个明确的声明几乎是不可能的。

了解何时为某项功能使用 polyfill 取决于该功能在各浏览器中的可用性,基准有助于做出此决定。虽然基准测试无法告诉您是否应使用 polyfill,但它可以让您清楚地了解 Web 平台功能的可用性,从而让您有机会进行更精细的选择,因为应用中过多的 polyfill 可能会带来严重的缺点。

什么是 polyfill?

polyfill 是一种代码,用于评估浏览器对某项功能的支持情况。如果浏览器不支持该功能,polyfill 会使用 JavaScript 尝试提供缺少的功能。

早期的 polyfill 示例是 Matchmedia.js,它使用 JavaScript 检测 matchMedia 方法并为其提供支持。借助 matchMedia,开发者可以在 JavaScript 中评估媒体查询是否与当前视口的状态匹配。通过加载 polyfill 来提供缺少的功能,您可以在任何浏览器中使用 matchMedia 方法,但现在,由于 matchMedia 在几乎所有使用的浏览器中都提供,因此不再需要此 polyfill。

虽然在某些方面添加对不受支持功能的支持有优势,但 polyfill 的缺点往往被忽视。随着 Web 应用中 polyfill 的数量增加,它们可能会开始产生负面影响。

polyfill 有什么缺点?

与浏览器中支持的同一功能相比,使用 polyfill 实现的功能始终会产生