jQuery 4.0.0 最终版本发布

2006 年 1 月 14 日,John Resig 在纽约市的 BarCamp 上介绍了名为 jQuery 的 JavaScript 库。现在,20 年后,jQuery 团队很高兴地宣布 jQuery 4.0.0 的最终版本发布。经过漫长的开发周期和几个预发布版本,jQuery 4.0.0 带来了许多改进和现代化。这是近 10 年来第一个主要版本发布,包括一些破坏性变更,因此在升级前请务必仔细阅读下面的细节。尽管如此,我们预计大多数用户只需进行少量代码更改即可升级。
许多破坏性变更是团队多年来一直想做的,但无法在补丁或次要版本中实现。我们删除了遗留代码,移除了之前已弃用的 API,删除了公共函数中从未文档化的内部参数,并放弃了一些过于复杂的“魔术”行为。
我们准备了 升级指南 和 jQuery Migrate 插件发布 来协助过渡。请升级并 如果遇到任何问题,请告知我们。
与往常一样,此版本可在 我们的 CDN 和 npm 包管理器上获取。其他第三方 CDN 可能很快也会提供,但请记住我们不控制他们的发布计划,他们需要一些时间。下面是 jQuery 4.0.0 的亮点。
移除 IE<11 支持
jQuery 4.0 放弃了对 IE 10 及更早版本的支持。有些人可能会问为什么我们没有移除对 IE 11 的支持。我们计划分阶段移除支持,下一步 将在 jQuery 5.0 中发布。目前,我们将从移除专门支持 IE 11 之前版本的代码开始。
我们还放弃了对其他非常旧浏览器的支持,包括 Edge Legacy、iOS 最后 3 个版本之前的版本、Firefox 最后 2 个版本之前的版本(除了 Firefox ESR)和 Android Browser。您无需进行任何更改。如果您需要支持这些浏览器,请坚持使用 jQuery 3.x。
Trusted Types 和 CSP
jQuery 4.0 添加了对 Trusted Types 的支持,确保包裹在 TrustedHTML 中的 HTML 可以作为输入用于 jQuery 操作方法,而不会违反 require-trusted-types-for 内容安全策略指令。
与此同时,虽然一些 AJAX 请求已经使用 <script> 标签来维护如 crossdomain 等属性,但我们 已将大多数异步脚本请求切换为使用 <script> 标签,以避免因使用内联脚本而导致的任何 CSP 错误。还有一些情况下使用 XHR 进行异步脚本请求,例如传递 “headers” 选项时(请改用 scriptAttrs!),但我们现在尽可能使用 <script> 标签。
jQuery 源代码迁移到 ES 模块
当 jQuery 源代码在 main 分支从 AMD 迁移到 ES 模块 时,这是一个特别的日子。jQuery 源代码一直与 jQuery 发布一起在 npm 和 GitHub 上发布,但无法直接作为模块导入,除非使用 RequireJS,这是 jQuery 选择的构建工具。我们已切换到 Rollup 来打包 jQuery,并且我们单独在 ES 模块上运行所有测试。这使得 jQuery 与现代构建工具、开发工作流和浏览器兼容,通过使用 <script type=module>。
移除已弃用的 API
这些函数已被弃用多个版本。现在到了主要版本,是时候移除它们了。这些函数要么一直是为内部使用而设计,要么现在在所有支持的浏览器中都有原生等价物。移除的函数包括:
jQuery.isArray、jQuery.parseJSON、jQuery.trim、jQuery.type、jQuery.now、jQuery.isNumeric、jQuery.isFunction、jQuery.isWindow、jQuery.camelCase、jQuery.nodeName、jQuery.cssNumber、jQuery.cssProps 和 jQuery.fx.interval。
请改用原生等价物,如 Array.isArray()、JSON.parse()、String.prototype.trim() 和 Date.now()。
移除已弃用的 API 加上移除旧 IE 支持代码,结果是 gzip 压缩后大小减少超过 3k 字节。
从 jQuery 原型中移除仅内部方法
jQuery 原型长期以来具有数组方法,这些方法不像其他 jQuery 方法那样行为,并且一直是为内部使用而设计。这些方法是 push、sort 和 splice。现在它们已从 jQuery 原型中移除。如果您在使用这些方法,$elems.push( elem ) 可以替换为 [].push.call( $elems, elem )。
长期以来,浏览器在焦点和模糊事件的顺序上无法达成一致,包括 focusin、focusout、focus 和 blur。最后,jQuery 4.0 支持的所有浏览器的最新版本在事件顺序上达成了共识。不幸的是,它与 jQuery 多年前选择的顺序不同,这使得这是一个破坏性变更。至少现在每个人都在同一页上了!
从 jQuery 4.0 开始,我们不再覆盖原生行为。这意味着除了 IE 之外的所有浏览器将遵循当前的 W3C 规范,即:
- blur
- focusout
- focus
- focusin
jQuery 在之前版本中的顺序是:focusout、blur、focusin、focus。讽刺的是,唯一曾经遵循旧 W3C 规范(在 2023 年更新之前)的浏览器是 Internet Explorer。
更新 slim 构建
在 jQuery 4.0.0 中,slim 构建变得更小了,通过移除 Deferreds 和 Callbacks(现在 gzip 压缩后约 19.5k 字节!)。Deferreds 长期以来支持 Promises A+ 标准,因此在大多数情况下可以使用原生 Promises,并且它们在 jQuery 支持的所有浏览器中可用,除了 IE11。Deferreds 确实有一些原生 Promises 不支持的额外功能,但大多数用法可以迁移到 Promise 方法。如果您需要支持 IE11,最好使用主构建或添加原生 Promises 的 polyfill。
下载
您可以从 jQuery CDN 获取文件,或直接链接到它们:
未压缩版 min 版您也可以从 npm 获取此版本:
npm install jquery@4.0.0
Slim 构建
有时您不需要 ajax,或者您更喜欢使用专注于 ajax 请求的众多独立库之一。而且通常使用 CSS 和类操作组合来处理 Web 动画更简单。最后,jQuery 支持的所有浏览器(除了 IE11)现在全面支持原生 Promises,因此在大多数情况下不再需要 Deferreds 和 Callbacks。与包含所有内容的常规 jQuery 版本一起,我们发布了排除这些模块的“slim”版本。如今 jQuery 的大小很少是加载性能问题,但 slim 构建比常规版本小约 8k gzip 字节。这些文件也在 npm 包和 CDN 上可用:
未压缩版 压缩版这些更新已作为 npm 和 Bower 上的当前版本可用。有关获取 jQuery 的所有方式的信息,请访问 https://jquery.com/download/。公共 CDN 今天会收到它们的副本,请给他们几天时间来发布文件。如果您急于快速开始,请使用我们 CDN 上的文件,直到他们有机会更新。
感谢
感谢所有参与此版本的人员,通过提交补丁、报告 bug 或测试,包括 Alex、Ahmed S. El-Afifi、fecore1、Dallas Fraser、Richard Gibson、Michał Gołębiowski-Owczarek、Pierre Grimaud、Gabriela Gutierrez、Jonathan、Necmettin Karakaya、Anders Kaseorg、Wonseop Kim、Simon Legner、Shashanka Nataraj、Pat O’Callaghan、Christian Oliff、Dimitri Papadopoulos Orfanos、Wonhyoung Park、Bruno PIERRE、Baoshuo Ren、Beatriz Rezener、Sean Robinson、Ed Sanders、Timo Tijhof、Tom、Christian Wenz、ygj6 以及整个 jQuery 团队。
jQuery 20 岁生日快乐!
在过去 20 年中,许多出色的人为 jQuery 及其相关项目做出了贡献,我们许多人在达拉斯聚会重聚。John Resig 甚至通过 Zoom 加入。此版本是在我们所有人聚在一起时发布的。
原文:打开站点
以上关于jQuery 4.0.0 最终版本发布的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » jQuery 4.0.0 最终版本发布
微信
支付宝