ca88官网前者“黑话”polyfill

前言

Web前端支付这么些日新月异的一时,总是需要阅读一些新颖的英文技术博客来跟上技术的升华的风尚。而有时候会境遇有些相比较频繁的“黑话”,在社区之中可能曾经是热点的“共同语言”,而你接触的少就偏偏看不懂。就像前几天几乎拥有中国人都清楚duang是什么样东西,可是一个刚学闽南语的外国人看到将来或者就一头雾水。

ca88官网 1

黑话也是要学习的,本文收集各个Web开发的暗语。这里先介绍两个。

Shim和Polyfill

在JavaScript的世界里,有多少个词平常被提到,shim和polyfill.它们指的都是怎么,又有哪些分别?

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

一个polyfill就是一个用在浏览器API上的shim.大家平常的做法是先检查当前浏览器是否协助某个API,假诺不补助的话就加载对应的polyfill.然后新旧浏览器就都足以应用这些API了.术语polyfill来自于一个家装产品Polyfilla:
Polyfilla是一个大不列颠及苏格兰联合王国产品,在美国喻为Spackling
Paste(译者注:刮墙的,在中国名叫腻子).

切记这点就行:把旧的浏览器想象变为一面有了分裂的墙.这么些[polyfills]会拉扯大家把这面墙的裂缝抹平,还我们一个更好的细腻的墙壁(浏览器)

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

 

Polyfill

Polyfill或者Polyfiller,是英国Web开发者 Remy
Sharp
 在咖啡馆蹲坑的时候拍脑袋造出来的。当时他想用一个词来形容”用JavaScript(或者Flash之类的怎么鬼)来促成部分浏览器不辅助的原生API”。Shim那个早已部分词汇第一时间出现在他的脑际里。可是她回头想了瞬间Shim一般有谈得来的API,而不是唯有实现原生不扶助的API。苦思冥想一贯想不到优良的单词,于是她一怒之下造了一个单词Polyfill。除了他自己用这一个词以外,他还给其余开发者用。随着他在各类Web会议发言和她写的书《Introducing
HTML5》中一再提到这多少个词,我们用了皆以为很好,就一起来用。

Polyfill的纯粹意思为:用以落实浏览器并不协助的原生API的代码。

比如,querySelectorAll是诸多现代浏览器都协助的原生Web
API,可是有些古老的浏览器并不补助,那么只要有人写了库,只要用了那多少个库,
你就足以在古旧的浏览器里面使用document.querySelectorAll,使用方法跟现代浏览器原生API无异。那么这些库就足以称之为Polyfill或者Polyfiller。
好,那么问题就来了。jQuery是不是一个Polyfill?答案是No。因为它并不是实现部分标准的原生API,而是包装了温馨API。一个Polyfill是抹平新老浏览器 正规原生API 之间的异样的一种包装,而不是落实自己的API。
已有些有些Polyfill,如 Polymer 是让旧的浏览器也能用上
HTML5 Web Component
的一个Polyfill。FlashCanvas是用Flash实现的可以让不扶助Canvas
API的浏览器也能用上Canvas的Polyfill。
 

相关文章