前端“黑话”polyfill

前言

Web前端开发这个日新月异的时代,总是需要阅读一些最新的英文技术博客来跟上技术的发展的潮流。而有时候会遇到一些比较高频的黑话,在社区里面可能已经是人人皆知的共同语言,而你接触的少就偏偏看不懂。就像现在几乎所有中国人都知道duang是什么东西,但是一个刚学中文的外国人看到以后可能就一头雾水。



黑话也是要学习的,本文收集各种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).

转载于:https://www.cnblogs.com/shsxt/p/8277618.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267734.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 什么是线程同步,java多线程同步集合是什么?并发集合是什么?

java中关于集合的内容也是十分丰富的,而且相关的知识点也是十分多的。多线程集合所涵盖的范围是十分广阔的。今天就来为大家介绍一下,java多线程同步集合是什么以及并发集合是什么?一起来看看吧。首先我们需要知道的是,无论是同步集合还是并…

windwos 批处理重定向, 讲的策彻底

本帖主要参考了《命令行参考》和一些前辈的文献,并加入了我自己的一些理解,希望能对各位有所帮助。 《命令行参考》中对重定向操作符有所论述,不过实在晦涩难懂,并且还有些错误,不利于大家理解。重定向的简单用法相信大…

matlab里符号的写法,Matlab中特殊符号的写法

Matlab的figure中输入上标、下标、特殊符号或字体坐标轴标注:1. 控制坐标轴尺度长度:set(gca,XLim,[-pi/2 pi])2. 定制自己想标注的刻度:(1)set(gca,XTick,[-pi/2:pi/4:pi])(2)set(gca,XTickLabel,{-pi/2 -pi/4: 0 pi/4 pi/2 pi*3/4 pi})3. 反…

VB.NET怎样开发自定义Windows控件

前言 Microsoft® Visual Basic® 的组件支持历来都是它的一大卖点,于是第三方软件开发商们纷纷开发出各种具有新功能性的可视控件 (也有少数非可视控件) 供 Visual Basic 程序员选用。这种特殊的 Visual Basic 开发形式创造了无数的第三方控件——有…

内核配置

make config:基于文本模式的交互式配置。 make menuconfig:基于文本模式的菜单型配置。(推荐使用,空格键选择:*:y,M:M,空格:N) make oldconfig:使用已有的配置…

mysql数据库面试总结(一)

1、数据库优化  1)数据库范式 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。 如电话列可进行拆分---家庭电话、公司电话 第二范式(2NF):首先是 1NF,另外…

思科路由器IKEV2 L2L***预共享密码认证最简化配置

一.概述:思科路由器对于IKEV2,是有很多预配的,因此可以很少的配置就能完成IKEV2的配置。二.基本思路:A.两边都用SVTI的方式配置Flex ***B.没有用动态路由,配置静态路由,如果一边用DVTI,则需要两边配置静态路由三.测试拓…

Oracle存储过程学习

存储过程创建语法: create or replace procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型(值范围); 变量2 类型(值范围); Begin Select count(*) into 变量1 fro…

关于通过Sql注入直接拖数据的讨论

和谐社会,拒绝***。 最近在老外的Blog上逛,突然发现我一直以来Dump数据的态度终于得到了某些老外的认可,通过Sql注入点直接拖下数据库是可行的。而且很多老外已经开始开发这方面的直接Dump数据的工具,并讨论相关的算法。很多人说行…

php mysql_query返回,php的mysql_query()函数处理以下( )指令成功就可以返回查询后的结果集。...

【多选题】皮亚杰认为影响发展的因素有( )。【单选题】关于宽带薪酬设计说法错误的是( )【判断题】《省煤炭厅2000年度工作总结》是一个文章式总结的标题。( )【单选题】小儿惊厥最常见的原因是:【单选题】The shipping company makes a notation such as “5 cartons have bee…

php-fpm配置笔记

Posted on 2013 年 2 月 27 日 3,070 Views 不得不说,英文不好弄linux服务器有时是挺痛苦的,苦逼的博主没好好学习英文,导致被lnmp折腾的够呛. php-fpm配置不当,导致服务器经常出现502错误,上个学期多次调整都没有解决,网上找来资料&#xff…

php xcat createadmin,php xcat update升级后出错,不知怎么弄

恢复再次升级,同样的错误,没法升级了吗Fetching originremote: Enumerating objects: 353, done.remote: Counting objects: 100% (353/353), done.remote: Compressing objects: 100% (3/3), done.remote: Total 802 (delta 350), reused 350 (delta 35…

JNDI(datasource)在tomcat,JBOSS下的spring+quartz配置

由于项目中多个小应用(类似插件)需要使用数据库连接池,不能为每一个应用中配置连接池。故采用JNDI的模式进行配置。 我们使用的web服务器有tomcat和jboss两种。分别介绍其在这两种服务器下并且在两种应用模式springhebernat与quartz下的配置。…

UVA10561 Treblecross

Treblecross 题目大意:给定一个带有.和X的字符串作为初始局面,两人轮流游戏,将.修改为X,当一个人放下X后,出现三个连续的X,游戏接触,放下X的人获胜。判断先手必胜还是必败,并给出第一…

解决VS2005 远程工具无法通过同步软件连接S5pv210 样机的问题

居然无法连接,记得以前遇到过的 1 分钟前 上传下载附件 (58.21 KB)后来还是看MSDN解决了MSDN连接如下http://msdn.microsoft.com/en-us/library/ee480836.aspx——Troubleshooting a Connection to a Target Device That Uses Platform Manager 转载一下sunrain_hjb…

matlab画曲面二次,如何用matlab绘制二次B样条三维曲面(已知控制点和节点矢量)?...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼小弟初来乍到,现在需要用matlaB绘制二次B样条曲面,现在已知信息:小弟做这个已经一个星期了,现在无任何进展,现在是万分着急,希望高手们给小弟指点一二&#xf…

一些应该记住的东西(持续更新?再也不会更新了)

没什么用的目录 1.积性函数与杜教筛 2.搜索的几种优化与考试期望得分 3.乱讲 4.模拟退火系列 5.生成函数系列 2018.1.18 首先写写数学方面的吧(因为现在在学)……毕竟这里面的公式浩如烟海…… 对着表推了十分钟愣是没发现……明明上午还证明过…… 还有就是通过算贡献化简一些…

传说中的window8 的种子

2019独角兽企业重金招聘Python工程师标准>>> 趁着更新服务器最后时刻 发个种子 有兴趣的可以去看看 http://dl.dbank.com/c03a8fck07 转载于:https://my.oschina.net/qutterrtl/blog/28368

oracle 触发器 merge,[OT]函数|过程|触发器|插入(insert)|修改(Merge)

CREATE TABLE errlog(Errcode NUMBER,Errtext CHAR(40));--1,创建函数:CREATE OR REPLACEFUNCTION get_salary (p_deptno NUMBER ) RETURN NUMBER AS v_sal NUMBER;BEGINIF p_deptno IS NULL THENRAISE_APPLICATION_ERROR(-20991,Department number is null);ELSIF …

苏州飘“彩云” 五年规模破百亿元

7月12日在苏州举行的国际云计算与移动互联网应用研讨会的重头戏之一,是苏州科技城 “彩云计划”的发布。由硅谷云计算卓越中心(CoE)与苏州科技城联合设立的苏州科技城云计算卓越中心同时成立。苏州科技城云计算卓越中心的建立是“彩云计划”落…