这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » shim和polyfill有什么区别?

共2条 1/1 1 跳转至

shim和polyfill有什么区别?

高工
2013-11-04 16:52:49     打赏

  在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别?

  1.Shim

  一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现.

   2.Polyfill

  在2010年10月份的时候,Remy Sharp在博客上发表了一篇关于术语"polyfill"的文章,

  一个polyfill是一段代码(或者插件),提供了那些开发者们希望浏览器原生提供支持的功能.

  因此,一个polyfill就是一个用在浏览器API上的shim.我们通常的做法是先检查当前浏览器是否支持某个API,如果不支持的话就加载对应的polyfill.然后新旧浏览器就都可以使用这个API了.术语polyfill来自于一个家装产品Polyfilla:

  Polyfilla是一个英国产品,在美国称之为Spackling Paste(译者注:刮墙的,在中国称为腻子).记住这一点就行:把旧的浏览器想象成为一面有了裂缝的墙.这些[polyfills]会帮助我们把这面墙的裂缝抹平,还我们一个更好的光滑的墙壁(浏览器)

  


  3.例子

  Paul Irish发布过一个Polyfills的总结页面“HTML5 Cross Browser Polyfills”.es5-shim是一个shim(而不是polyfill)的例子,它在ECMAScript 3的引擎上实现了ECMAScript 5的新特性,而且在Node.js上和在浏览器上有完全相同的表现(译者注:因为它能在Node.js上使用,不光浏览器上,所以它不是polyfill).

(转自开源中国)


专家
2013-11-04 17:09:52     打赏
2楼
又涨知识了,3q

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]