前言

Web前端jQuery,支付这一个热气腾腾的一世,总是要求阅读一些新式的英文技术博客来跟上技术的前进的风尚。而有时候会蒙受有的相比频繁的“黑话”,在社区其中可能曾经是看好的“共同语言”,而你接触的少就偏偏看不懂。如同今日大概所有中国人都精通duang是怎样事物,然而一个刚学普通话的旁人看到后头可能就一头雾水。

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

 

相关文章

网站地图xml地图