Polyfill简介

Wesley13
• 阅读 977

1.什么是Polyfill?
Polyfill是一个js库,主要抚平不同浏览器之间对js实现的差异。比如,html5的storage(session,local), 不同浏览器,不同版本,有些支持,有些不支持。Polyfill(Polyfill有很多,在GitHub上https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills),帮你把这些差异化抹平,不支持的变得支持了(典型做法是在IE浏览器中增加 window.XMLHttpRequest ,内部实现使用 ActiveXObject。)

提到Polyfill,不得不提shim,polyfill 是 shim的一种。 
shim是将不同 api封装成一种,比如 jQuery的 $.ajax 封装了 XMLHttpRequest和 IE用ActiveXObject方式创建xhr对象。它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现。

2.如何使用?
直接引入项目,最简单就是CDN:

点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
typescript中继承Map、Set报错的解决
Map、Set的polyfill实现是可以继承的if(!this.Map){//polyfill}else{(function(){//可继承Map替代原生MapvarGMapglobalThis.Map;try{Map.call({});}catch
阮小五 阮小五
1年前
Tampermonkey for Mac(油猴Safari浏览器辅助插件) 中文版
油猴脚本Tampermonkey是一款油猴Safari浏览器辅助插件,是一款适用于Safari用户的脚本管理,能够方便管理不同的脚本。虽然有些受支持的浏览器拥有原生的用户脚本支持,但tampermonkey油猴插件将在您的用户脚本管理方面提供更多的便利,它
Karen110 Karen110
3年前
手把手教你在Windows下设置分布式队列Celery的心跳轮询
/1前言/大家好,我是吴老板。用Celery官方的话来说,Celery是一个非常优秀的分布式队列,可应用于分布式共享中间队列和定时任务等等。/2 版本的差异/    Celery有很多个版本,各版本之间的差异可谓不小,比如最新的Celery6.0版本在稳定性远不如Celery4.0,所以在使用不同版本的时候,系统给到我们的反馈可能并不
Stella981 Stella981
3年前
PDF.js专题
前言   英文是github上的原文,找不到中文资料,我根据自己理解翻译的,有些词意思拿不准就直接把单词留在原地了,看这个文档应该可以凑合着用了。PDF.js是什么    PDF.jsisaPortableDocumentFormat(PDF)viewerthatisbuiltwith HTML5
Stella981 Stella981
3年前
Js中polyfill的使用限制
随着浏览器的更新,JS也在新增功能功能。这些功能为我们开发带来了很大的便利。在旧浏览器上使用,需要引入相关的polyfill才能用。然而,有些功能在旧浏览器中是无法完美实现的,只有在一定条件下才能使用。本文将为大家分析这些功能的使用限制。Symbol1.禁止用typeof和instanceof,如果要判断,建议判断是否是string。
Stella981 Stella981
3年前
Express全系列教程之(九):将session上传至mysql数据库
一、简介实际引用中,有些公司在不同地区会设置不同服务器,因此就需要用到nginx以实现负载均衡,这时,将session数据保存至数据库就成为了需要面对的问题,我们以MySQL数据库为例,看看他是如何将数据上传至mysql中的。在npm上有一个叫做:expressmysqlsession的模块,主要用于将数据上传至mysql数据库,以下
Stella981 Stella981
3年前
JS微任务 宏任务,Promise、setTimeout、setImmediate运行顺序实测
结论如下1.虽然理论上应当先运行Promise,再运行setTimeout。但是由于历史版本或使用polyfill,使得Promise未必优先运行。2.setImmediate未必比setTimeout早运行3.在最新浏览器中Promise会早于事件冒泡运行,在设计框架时应考虑这一情况以下是实测情况\
Stella981 Stella981
3年前
JVM调优总结(五)
为什么要分代   分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。   在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,
京东云开发者 京东云开发者
5个月前
不只是前端,后端、产品和测试也需要了解的浏览器知识
一、我们为什么要了解浏览器?1.对于前端开发者1.浏览器是用户体验的第一线。我们需要了解浏览器的工作原理,才能有效地设计和实现用户界面,确保良好的用户体验。2.好的产品需要考虑浏览器兼容性。我们需要了解这些差异,以确保网站或应用在不同的浏览器中都能正常工作