新闻观点

News view

开源前端框架——“锋利的jQuery”发布4.0首个Beta版本

日期:2024-03-15  浏览次数:276

分享到:

公告指出,4.0 中很多破坏性变更都是团队多年来一直想做的,但却无法在补丁或小版本中实现的。

新版本删减了遗留代码,移除了一些以前已经弃用的 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 变得更加小巧。