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
- 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
删除了push
, sort
以及 splice
jQuery 原型中的 Array 方法push
, sort
以及 splice
已经被删除。这些方法的行为与任何其他 jQuery 方法不同,并且始终是 internal-use only。目前,这些方法已转换为等效的 Array 函数。例如,$elems.push( elem )
变成了[].push.call( $elems, elem )
。
focusin
和focosout
event order
长期以来,浏览器对 focus 和 blur 事件的顺序(包括focusin
、focusout
、focus
和blur
)并不一致。jQuery 4.0 支持的所有浏览器的最新版本都趋向于统一事件顺序。但是它与 jQuery 多年前选择的一致顺序不同,所以促使这一改变变成了一个破坏性的变更。
jQuery 在以前的版本中对所有四个事件的顺序是:
1. focusout 2. blur 3. focusin 4. focus
从 jQuery 4.0 开始,不再 override native behavi。这意味着除 IE 之外的所有浏览器都将遵循当前的 W3C 规范,即:
1. blur 2. focusout 3. focus 4. focusin
除 Internet Explorer 之外的所有浏览器都将遵循当前的 W3C 规范。
FormData
支持
jQuery.ajax
添加了对二进制数据的支持,包括FormData
。
此外,jQuery 4.0 还删除了自动 JSONP 升级、将 jQuery source 迁移至 ES 模块;以及添加了对 Trusted Types 的支持,确保以 TrustedHTML 封装的 HTML 能以不违反require-trusted-types-for
内容安全策略指令的方式用作 jQuery 操作方法的输入。
由于删除了 Deferreds 和 Callbacks(现在压缩后不到20k字节),jQuery 4.0.0 的 slim build 变得更加小巧。
更多详情可查看官方公告。
下载:
- https://code.jquery.com/jquery-4.0.0-beta.js
- https://code.jquery.com/jquery-4.0.0-beta.min.js
也可以从 npm 获取此版本:
npm install jquery@4.0.0-beta