JavaScript 进阶实战课
石川
JavaScript Patterns and Anti-Patterns 等开源项目创建者,O'Reilly 技术评审
15066 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
开篇词 (1讲)
JavaScript 进阶实战课
15
15
1.0x
00:00/00:00
登录|注册

40|Polyfill:通过Polyfill让浏览器提供原生支持

你好,我是石川。
在之前的课程中,我们提到过,用 JavaScript 写的程序不是在统一的环境中运行的。虽然我们知道现实中存在定义 ECMAScript 规范的组织 TC39,以及编写 HTML5 和 CSS 规范的组织 W3C(万维网联盟),但不同的浏览器厂商对 JavaScript 虚机的实现都会影响我们的程序在最终执行时的结果。因为虽然标准是存在的,但问题是执行这些标准的公司是独立于标准之外存在的,这就导致了同样的标准,在不同浏览器厂商和 JS 引擎的理解下,产生了不同的实现。
今天,我们就看看,如何能在不同的浏览器厂商对同一组较新的 JavaScript 和相关的 Web API 功能支持程度不一的情况下,通过创建一个 Polyfill,来解决原生支持问题。Polyfill 在英文中直译过来的意思就是“填缝剂”,我们可以把它理解成一种补丁

造成原生支持问题的原因

首先,我们来看看浏览器为什么会存在原生支持问题。
原生支持问题其实一直都困扰着开发者,在互联网应用出现的早期,出现最多原生支持问题的便是 IE。这主要是由几方面的原因造成的:
第一,IE 早期的版本没有自动更新,而且我们大多数人都没有手动更新软件的习惯,这也就造成了很多的用户在新版本的 IE 提供了更多新功能升级和 bug 修复的情况下,仍然停留在老版本的浏览器上;
第二,因为 Windows 的系统早期并不是和电脑捆绑售卖的,也就造成了很多人使用的是破解版的 Windows 系统,为了避免升级时影响盗版的使用,很多人也不会主动更新操作系统,这就进一步造成了人们对系统连带的浏览器版本更新的滞后;
第三,企业中使用的 IE 也是浏览器兼容性问题的重灾区。因为越是大的公司,越是“稳定”压倒一切,就越是需要 IT 管理员来集中地更新公司电脑操作系统和软件的版本,而对浏览器这种“病从口入”的连接互联网的窗口软件,更是安全防护的重点,需要集中更新,所以更是大大减缓了浏览器更新的速度。所以早期的网站和 Web 应用开发,主要的问题都集中在 IE6+ 的版本对新版的 JavaScript 原生支持的问题。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Polyfill是一种解决浏览器原生支持问题的重要工具。由于不同浏览器对JavaScript和相关的Web API功能支持程度不一,开发者常常面临兼容性问题。为解决这一问题,可以使用Babel.js进行代码转译或者使用Polyfill作为插件提供较新浏览器的功能,同时也提供较旧版本的功能。Polyfill不仅适用于JavaScript的补丁,还可以解决HTML和CSS的原生支持问题。通过Polyfill的具体实现,文章以JavaScript中的forEach方法为例,详细介绍了Polyfill的运转机制和实现过程。同时,文章强调了转译和Polyfill的共同点和区别,以及它们的互补性。总的来说,Polyfill是一种解决浏览器原生支持问题的重要工具,可以帮助开发者更好地处理不同浏览器的兼容性问题。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《JavaScript 进阶实战课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部