阅读视图

发现新文章,点击刷新页面。

我震惊了,jQuery 竟然发布了 4.0 !

作为近 10 年来的首次重大更新,jQuery 4.0.0 经历了漫长的开发周期与多个预发布版本后正式推出。

我真的以为 jQuery 死了

jq.jpeg

这款仍被广泛使用的 JavaScript 库 jQuery 现已推出 4.0.0 版本。作为近 10 年来的首次重大更新,jQuery 4.0.0 新增了可信类型(Trusted Types)支持,并提供了一个更精简的构建包。

该版本于 1 月 17 日正式发布,可从 jquery.com 下载。jQuery 4.0.0 中的可信类型功能确保,只有 TrustedHTML 接口的 HTML 内容才能传入 jQuery 的 DOM 操作方法,从而严格遵守浏览器内容安全策略(CSP)的 require-trusted-types-for 指令。

此外,尽管部分 AJAX 请求已在使用 <script> 标签来维护 crossdomain 等属性,jQuery 开发团队仍将大多数异步脚本请求切换为使用 <script> 标签,以避免内联脚本引发的 CSP 错误。仅在少数场景(如传递 headers 选项)下仍会使用 XHR 发起异步脚本请求,但只要条件允许,就会优先使用 <script> 标签。

jQuery 4.0.0 还带来了更精简的构建包,移除了 Deferred 对象和回调函数。

Deferred 长期以来支持 Promises A+ 标准,用于实现可互操作的 JavaScript Promise;不过在绝大多数场景下,除 IE 11 外,所有 jQuery 支持的浏览器都已支持原生 Promise。

官方表示,虽然 Deferred 具备一些原生 Promise 没有的额外功能,但大多数用法都可以迁移到 Promise 方法。如果你的项目仍需支持 IE 11,建议使用主构建包,或为原生 Promise 添加 polyfill。需要注意的是,jQuery 4.0.0 不再支持 IE 10 及更早版本。

根据 Web 技术调查机构 W3Techs 的数据,已诞生 20 年的 jQuery 目前仍被 70.9% 的网站使用。

该项目现由 OpenJS 基金会管理,旨在通过跨浏览器的 API 简化 HTML 文档遍历与操作、事件处理和动画等功能。jQuery 4.0.0 的其他重要更新包括:

  • 焦点事件顺序标准化:现在遵循万维网联盟(W3C)规范,使 jQuery 与大多数浏览器最新版本支持的事件顺序保持一致。这一事件顺序与旧版 jQuery 不同,属于破坏性变更。从 4.0.0 开始,库不再支持覆盖原生行为,将严格遵循当前 W3C 规范的顺序:blurfocusoutfocusfocusin
  • 移除内部私有方法:从 jQuery 原型中移除了仅内部使用的数组方法(如 pushsortsplice)。这些方法的行为与其他 jQuery 方法不一致,仅用于内部逻辑。开发者如果用到了这些被移除的方法,可以用 [].push.call($elems, elem) 替代原来的 $elems.push(elem)
  • 3.x 版本进入维护模式:jQuery 3.x 系列今后将只接收关键安全更新。

总结

我想起了那句话,老兵不死,只是慢慢凋零。

❌