Shim 与 Polyfill

  • Shim: 用来向后兼容。比如 requestIdleCallback,为了在旧的环境中不报错,可以加 shim

    • 使用环境中现有的 api 来实现,不会引入额外的依赖或其他技术。
  • Polyfill: 用来增强,添加新功能。比如 IE7 不支持 localStorage,能添加 polyfill 来支持。
    • 不限制实现,只要是能引入该新功能。通过 js 可 flash。记得很早以前 chrome 还为 ie 开发过插件来支持一些高级的浏览器特性。

参考

原文地址:https://www.cnblogs.com/Wayou/p/shim_and_polyfill.html

时间: 2024-08-08 22:05:41

Shim 与 Polyfill的相关文章

JavaScriptPolyfillShim 在JavaScript中Shim和Polyfill有什么区别?

在JavaScript的世界里,有两个词经常被提到,那就是Shim和Polyfill,它们指的都是什么,又有什么区别?在本文中,将简短的给大家介绍他们之间的联系和区别.Shim 一个shim就是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现,Shim有时候也称为shiv,比如著名的HTML5兼容库html5shiv,Github地址:https://github.com/aFarkas/html5shiv. Polyfill 在2010年10月份的时候,Remy

shim和polyfill有什么区别

在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别? 一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现 一个polyfill就是一个用在浏览器API上的shim.我们通常的做法是先检查当前浏览器是否支持某个API, 如果不支持的话就加载对应的polyfill.然后新旧浏览器就都可以使用这个API了.术语polyfill来自于 一个家装产品Polyfilla: Polyfilla是一个英国产品,

shim 和 polyfill 区别解释

polyfill 是 shim 的一种.shim 是将不同 api 封装成一种,比如 jQuery 的 $.ajax 封装了 XMLHttpRequest 和 IE 用 ActiveXObject 方式创建 xhr 对象:polyfill 特指 shim 成的 api 是遵循标准的,其典型做法是在IE浏览器中增加 window.XMLHttpRequest ,内部实现使用 ActiveXObject.在实际中为了方便做对比,会特指 shim 的 api 不是遵循标准的,而是自己设计的. 作者:知

polyfill

[polyfill] 在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别? 一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现 一个polyfill就是一个用在浏览器API上的shim.我们通常的做法是先检查当前浏览器是否支持某个API,如果不支持的话就加载对应的polyfill.然后新旧浏览器就都可以使用这个API了.术语polyfill来自于一个家装产品Polyfilla: Polyfill

polyfill 一个解决兼容的绝佳方案

polyfill为何物 Polyfill你可以理解为“腻子”,就是装修的时候,可以把缺损的地方填充抹平. 举个例子,html5的storage(session,local), 不同浏览器,不同版本,有些支持,有些不支持. 我们又想使用这个特性,怎么办? 有些人就写对应的Polyfill(Polyfill有很多),帮你把这些差异化抹平,不支持的变得支持了(简单来讲,写些代码判断当前浏览器有没有这个功能,没有的话,就写一些支持的补丁代码). 你只需要把需要的Polyfill引入到你的程序里,就可以了

前端名词收集

收集于互联网 update at 2016年10月02日19:40:25 IIFE ("Immediately Invoked Function Expression") (function(param){ })(params); shim和polyfill shim的意思是在一个老(旧)环境中模拟出一个新API,有时也叫做shiv,例如著名的html5shiv库. polyfill的意思和shim差不多,2010年10月份Remy Sharp引进了这个概念,一个polyfill是一段

前端技术的发展和趋势

Web 发展了几十个春秋,风起云涌,千变万化.我很庆幸自己没有完整地经历过这些年头,而是站在前人的肩膀上行走.Web 技术发展的速度让人感觉那几乎不是继承式的迭代,而是一次又一次的变革,一次又一次的创造.这几年的前端,更为之甚! 我从 12 年底开始接触前端,12 年之前的前端发展情况只能从上一辈的笔触中领会.本文会盘点从 09 年开始到 15 年间前端技术的革新,同时也会从多个角度,解读近几年前端技术发展的潜在因素,其中穿插了若干对前端演进的拙见,难免会有错误和疏漏,望读者可以补充和斧正. 那

JS编程

JS编程常识 一.UI层的松耦合 松耦合就是要求各层遵循“最少知识原则”,或者说是各层各司其职,不要越权: HTML:结构层 CSS:表现层 JS:行为层 对于各层的职能,有一句比较贴切的解释:HTML是名词(n),CSS是形容词(adj)和副词(adv),JS是动词 因为三层联系紧密,实际应用中很容易越权: 1.从css中分离js 尽量不要用css表达式,如果非要用也应该把相应的代码放在hack中,便于维护 2.从js中分离css 不要用ele.style.attr及ele.cssText,应

2016 年前端技术

近几年前端技术盘点以及 2016 年技术发展方向 2016-01-09 10:33 by Barret Lee, 1175 阅读, 8 评论, 收藏, 编辑 Web 发展了几十个春秋,风起云涌,千变万化.我很庆幸自己没有完整地经历过这些年头,而是站在前人的肩膀上行走.Web 技术发展的速度让人感觉那几乎不是继承式的迭代,而是一次又一次的变革,一次又一次的创造.这几年的前端,更为之甚! 我从 12 年底开始接触前端,12 年之前的前端发展情况只能从上一辈的笔触中领会.本文会盘点从 09 年开始到