jQuery 4.0.0 beta 发布

jQuery 4.0.0 beta 现已发布,进行了一些错误修复、性能改进和一些破坏性变更。

公告指出,其中很多突破性变更都是团队多年来一直想做的,但却无法在补丁或小版本中实现的。新版本删减了遗留代码,移除了一些以前已经弃用的 API,移除了一些从未记录在案的 public functions 的 internal-only 参数,并放弃了对一些过于复杂的"magic"行为的支持。

一些更新内容包括:

Goodbye IE<11

不再支持 IE 10 及更早版本。按照分阶段取消支持计划,预计下一步将在 jQuery 5.0 中取消对 IE 11 的支持。

同时还放弃了对其他旧版浏览器的支持,包括 Edge Legacy、iOS <11、Firefox <65 和 Android 浏览器。对于还有需要的用户,则可以选择继续坚持使用 jQuery 3.x。

删除了已弃用的 API

删除了push,sort以及splice

jQuery 原型中的 Array 方法push,sort以及splice已经被删除。这些方法的行为与任何其他 jQuery 方法不同,并且始终是 internal-use only。目前,这些方法已转换为等效的 Array 函数。例如,$elems.push( elem )变成了[].push.call( $elems, elem )。

focusin和focosoutevent order

长期以来,浏览器对 focus 和 blur事件的顺序(包括focusin、focusout、focus和blur)并不一致。jQuery 4.0 支持的所有浏览器的最新版本都趋向于统一事件顺序。但是它与 jQuery 多年前选择的一致顺序不同,所以促使这一改变变成了一个破坏性的变更。

jQuery 在以前的版本中对所有四个事件的顺序是:

从 jQuery 4.0 开始,不再override native behavi。这意味着除 IE 之外的所有浏览器都将遵循当前的 W3C 规范,即:

除 Internet Explorer 之外的所有浏览器都将遵循当前的 W3C 规范。

FormData支持

jQuery.ajax添加了对二进制数据的支持,包括FormData。

此外,jQuery 4.0 还删除了自动 JSONP 升级、将 jQuery source 迁移至 ES 模块;以及添加了对Trusted Types的支持,确保以 TrustedHTML 封装的 HTML 能以不违反require-trusted-types-for内容安全策略指令的方式用作 jQuery 操作方法的输入。

下载:

也可以从 npm 获取此版本:

npm install jquery@4.0.0-beta