jQuery 最近发布了测试版,这个版本除了带来了错误修复和性能提升之外,其中最值得注意的就是 jQuery 4.0 放弃了对 IE 10 及更低版本的支持,这不仅降低了文件大小,并且更好地适应现代 Web 标准,
此外此次更新还包含:清除多余代码、淘汰已废弃的 API、移除未发布的内部参数,以及简化过于复杂的“魔法”行为。
jQuery 项目进展并不快,上一个主要版本 jQuery 3.0 是在 2016 年 6 月发布,而 4.0 曾计划于 2022 年发布,结果跳票了几次,所以差不多8年时间了。
放弃对 IE 10 及更低版本的支持
jQuery 4.0 最显著的升级就是放弃了对 IE 10 及更低版本的支持,并且预计在下一个版本 jQuery 5.0 发布的时候将彻底放弃对 IE 11 即所有 IE 浏览器的支持。
这次更新移除了专门为旧版本 IE 设计的代码,使代码库更加高效,文件大小就减少了 867 字节,并且是gzip 压缩之后的大小,对其他过时浏览器的支持也同时删除了,如 Edge Legacy(不基于 Chromium 引擎)、iOS 11 之前的老版本、Firefox 65 之前的老版本等。如果你的用户还在使用这些浏览器,那么建议你继续使用 jQuery 3.x 版本。
移除已废弃的 API
下面这些函数要么是内部使用的,要么现在所有支持的浏览器中都有原生相同功能的函数,jQuery 已经在之前几个版本中就被弃用它们,4.0 又是一个主要版本,所以是时候彻底移除它们了。
jQuery.cssNumber
jQuery.cssProps
jQuery.isArray
jQuery.parseJSON
jQuery.nodeName
jQuery.isFunction
jQuery.isWindow
jQuery.camelCase
jQuery.type
jQuery.now
jQuery.isNumeric
jQuery.trim
jQuery.fx.interval
如果你在项目中使用了这些函数,请务必使用相应的原生方法或替代函数更新它,以确保与 jQuery 4.0 兼容。
其他改进
移除一些特定方法:jQuery 4.0 移除了一些内部使用的数组方法,包括 push
、sort
和 splice
,开发者如果是用了这些内部方法,记得使用标准数组方法去代替这些方法。
事件顺序变化:为了符合最新的W3C规范,jQuery 4.0 中 focusin
和 focusout
事件的处理顺序发生了变化,新的顺序是:blur -> focusout -> focus -> focusin,这可能会影响依赖旧顺序的插件或代码,开发者也要注意下。
添加 FormData 支持:jQuery.ajax 现在可以自动处理二进制数据,包括 FormData,无需额外配置。
移除 JSONP 自动转换:jQuery 4.0 不再自动将 dataType: "json"
和提供的回调函数转换为 JSONP 请求,现在推荐使用 CORS 进行跨域操作,因为它在 jQuery 4.0 所有支持的浏览器中都有效,并且有助于避免在不知情的情况下执行跨域的代码。
你还在使用 jQuery 吗?
时至今日,jQuery 依然是网络上运行时间最长、最具影响力的 JavaScript 库之一,根据 BuiltWith 的统计数据,排名前 100 万的网站中超过 60% 以某种方式使用 jQuery,其中最大的原因是 WordPress 内置了 jQuery,相信 4.0 发布之后,WordPress 也会很快在其新版本中集成 jQuery 4.0。
很多程序员不再使用 jQuery 作为 JavaScript 的框架,但是其庞大遗留代码库使得它可能还会存在很长时间,至少它会在未来依旧会在数千万个 WordPress 网站中存在,如果你和我一样纯后端程序员,希望自己简单操作一下页面,那么 JQuery 依旧是最方便使用的 JavaScript 库。