Shim

Shim 指的是在一个旧的环境中模拟出一个新 API ,而且仅靠旧环境中已有的手段实现,以便所有的浏览器具有相同的行为。主要特征:

该 API 存在于现代浏览器中;
浏览器有各自的 API 或 可通过别的 API 实现;
API 的所有方法都被重新实现;
拦截 API 调用,并提供自己的实现;
是一个优雅降级。

Polyfill

polyfill 是一段代码(或者插件),提供了那些开发者们希望浏览器原生提供支持的功能。程序库先检查浏览器是否支持某个API,如果不支持则加载对应的 polyfill。主要特征:

是一个浏览器 API 的 Shim;
与浏览器有关;
没有提供新的API,只是在 API 中实现缺少的功能;
以只需要引入 polyfill ,它会静静地工作;

shim 的概念要比 polyfill 更大一些,可以将 polyfill 理解为专门兼容浏览器 API 的 shim 。简单的说,如果浏览器X支持标准规定的功能,那么 polyfill 可以让浏览器 Y 的行为与浏览器 X 一样。

原文:
http://www.css88.com/archives/8339

Shim Polifill区别相关推荐

  1. 什么是polyfill?

    polyfill的概念:用于实现浏览器并不支持原生API的代码. 下面举一个例子:document.querySelectorAll()现在大多数浏览器都已经支持该方法,但是仍然存在一些比较老的版本的 ...

  2. shim和polyfill有什么区别?

    为什么80%的码农都做不了架构师?>>>    在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别? 1.Shim 一个s ...

  3. shim和polyfill的区别,重点是Polyfill的作用和使用

    在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别? 一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手 ...

  4. shim和polyfill的区别,重点是Polyfill的作用和使用。

    在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别? 一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手 ...

  5. Polymer元素和AngularJS指令有什么区别?

    本文翻译自:What is the difference between Polymer elements and AngularJS directives? On the Polymer Getti ...

  6. 【容器运行时】一文理解 OCI、runc、containerd、docker、shim进程、cri、kubelet 之间的关系

    参考 docker,containerd,runc,docker-shim 之间的关系 Containerd shim 进程 PPID 之谜 内核大神教你从 Linux 进程的角度看 Docker R ...

  7. 【JavaScript高级】模块化规范「一文让你彻底搞懂前端模块化规范 区别」

    在JS最早出现的时候,是为了实现一些简单的功能,但随着浏览器的不断发展,对于JS的要求也越来越高,需要实现一些较为复杂的功能.这个时候开发者为了维护方便,会把不同功能的模块抽离出来写入单独的 js 文 ...

  8. 【讲座笔记】深度学习在通信领域的应用--Byonghyo Shim教授

    1 引言 此PPT来自韩国首尔国立大学Byonghyo Shim教授,在北京理工大学邀请的线上会议的讲座内容.主题"Deeop learning aided wireless communi ...

  9. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  10. C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别

    最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...

最新文章

  1. 数据中心建设流程附带建设标准(推荐收藏)
  2. SAP OData $batch processing
  3. vue 如何获取图片的原图尺寸_公众号封面图片尺寸是多少?如何在公众号里制作封面图?...
  4. python字典统计排序1_python-如何按字典顺序对Counter.mostCommon(n)的...
  5. Html 进行DOM 操作(放缩,颜色...),HTML抓图(放缩,滚动,拼接)
  6. win10 Java JDK环境变量配置
  7. 一个进程在执行过程中可以被中断事件打断_Linux操作系统:中断类型和中断的作用...
  8. springboot使用thymeleaf完成数据的页面展示
  9. inner/left/right/full join on
  10. 计算机ip 地址异常,电脑显示IP地址错误怎么办|电脑无法上网提示IP地址错误的解决方法...
  11. 矢量网络分析仪测量总结
  12. C语言——输入两个正整数m和n,求其最大公约数和最小公倍数。
  13. 100天精通Python丨黑科技篇 —— 26、代理ip技术(request)
  14. SQL server和MySQL编号自动生成
  15. 把网页保存成markdowm的方法
  16. Tableau-盒须图
  17. ABAP:增强篇-MIGO过账增强之CHECK方法获取行项目
  18. Rocket之消息发送
  19. innodb的写缓存
  20. java web怎么实现跳转,成都汇智动力-JAVAweb路径跳转实现教程

热门文章

  1. DVB-S/S2天线及信号相关知识
  2. 读到良葛格的反思Hello World
  3. 周期性学习率(Cyclical Learning Rate)技术
  4. JavaScript数据结构与算法笔记
  5. CPU、MPU、MCU和SOC还傻傻分不清楚 看这篇文章就够了
  6. c 语言万年历 节日查询,C语言 程序设计 节日查询和任务提醒系统万年历.doc
  7. 安科瑞无线测温方案part1
  8. libvirt live migration 流程
  9. CryEngine5官方 window下源码编译
  10. 小白也会用的情人节表白神器