返回

尊重浏览器原力:拒绝 polyfill,拥抱渐进增强

前端

了解 polyfill 和渐进增强的区别至关重要。polyfill 是指弥补浏览器原生功能不足的代码,而渐进增强则是针对不同浏览器的特定功能进行定制,提供不同级别的体验。

对于 库,是否添加 polyfill 始终是热门话题。一方面,polyfill 可以 库在所有浏览器中都能正常工作;另一方面,它们可能 代码体积和 。

在本文中,我将探讨为什么我决定 为我的库添加 polyfill,而是专注于渐进增强。

的力量

渐进增强采用以下方法:

  • 首先为所有浏览器提供 功能。
  • 然后针对支持更高功能的浏览器添加 功能。

这种方法的优势在于:

  • 保持代码库 和 。
  • 允许浏览器 进步。
  • 为用户提供始终 的体验,无论其使用的浏览器如何。

的现状

现代浏览器在支持 功能方面取得了长足进步。大多数流行浏览器(例如 Chrome、Firefox 和 Safari)现在都支持 和 的大部分功能。

这意味着对于许多 Web 应用程序,polyfill 变得越来越 。通过依赖渐进增强,我们可以针对最新浏览器提供最佳体验,同时为旧浏览器提供优雅的降级体验。

我自己的经历

我最近发布了一个 库,它需要使用 的 方法。虽然此方法在现代浏览器中广泛支持,但在较旧的浏览器(如 IE11)中却不可用。

起初,我考虑添加一个 polyfill。然而,经过仔细考虑,我决定采用渐进增强的方法。我为库添加了一个回退,在不支持 的浏览器中使用 。

这种方法既保留了库的 ,又为所有浏览器提供了 的体验。旧浏览器用户仍然可以访问库的基本功能,而新浏览器用户可以享受额外的功能。

结论

虽然 polyfill 仍然在某些情况下有用,但我相信对于大多数 Web 应用程序,渐进增强是一种更可取的方法。通过拥抱浏览器原力,我们可以构建 、 且 的应用程序,这些应用程序可以在所有浏览器中无缝运行。

因此,我鼓励您重新考虑为您的库添加 polyfill 的必要性。通过采用渐进增强的原则,我们可以创造出更 、更 的 Web 体验。