ca88官网前端“黑话”polyfill

前言

Web前端开发这么些扶摇直上的时日,总是需要阅读一些风尚的英文技术博客来跟上技巧的发展的前卫。而有时候会遇上有的比较频繁的“黑话”,在社区里面可能已经是热门的“共同语言”,而你接触的少就偏偏看不懂。就好像先天大致拥有中国人都驾驭duang是怎么样东西,但是一个刚学汉语的国外人看到未来或者就一头雾水。

ca88官网 1

黑话也是要上学的,本文收集各样Web开发的切口。那里先介绍多个。

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。
 

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).

 

相关文章