Polyfill 与 Shim

polyfill 的概念是 Remy Sharp 在2010年提出的。

polyfill,或 polyfiller ,表示为开发人员提供旧浏览器没有原生支持的较新功能的一块代码或一个插件(利用旧浏览器的原生功能实现较新功能)。

shim 则可以看做是 polyfill 的超集,表示将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现。

两者的区别在于polyfill针对浏览器,而shim针对任何环境

使用

在所有其他代码之前直接import需要的polyfill/shim

这两者通常用于修复损坏实现,即在最现代的、最新版本的浏览器中,也可能需要用到这些polyfill/shim,因此需要不加选择地、同步地加载所有的polyfill/shim

当然这也会造成相关的问题:额外的体积(大小)成本。

05-20 23:38