Polyfill 与 Shim
polyfill
的概念是 Remy Sharp 在2010年提出的。
polyfill
,或 polyfiller
,表示为开发人员提供旧浏览器没有原生支持的较新功能的一块代码或一个插件(利用旧浏览器的原生功能实现较新功能)。
shim
则可以看做是 polyfill
的超集,表示将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现。
两者的区别在于polyfill
针对浏览器,而shim
针对任何环境。
使用
在所有其他代码之前直接import
需要的polyfill/shim
。
这两者通常用于修复损坏实现,即在最现代的、最新版本的浏览器中,也可能需要用到这些polyfill/shim
,因此需要不加选择地、同步地加载所有的polyfill/shim
,
当然这也会造成相关的问题:额外的体积(大小)成本。