乐趣区

关于前端:时隔一年多jQuery发布361新版本你还在用JQ吗

在往年 8 月 26 日 jQuery 终于是更新了一个 3.6.1 保护版本,间隔上一个版本公布工夫已过来一年零五个月之久,其维护者示意接下来次要思考修复聚焦与失焦 (focus & blur) 的问题以及一些难以捉摸的边缘状况,可能是历史起因,jQuery 中与焦点无关的中央都很难扭转,团队从未完全正确地修复,所以他们临时保留这些内容,并将在将来解决,特地是因为这些更改最终可能须要公布一个新的次要版本。

所谓保护版本是指在不更改任何外围组件或增加新性能的状况下纠正安全漏洞或小谬误的软件版本。它们通常以十分之一或百分之一来编号,以区别于次要版本,一般来说,软件工程师会尽可能快地实现这个过程,并且不会就义编码品质或可靠性。

以下是 jQuery 3.6.1 的一些改良:

基础设施改良

在这个版本中团队做了很多工作来更新我的项目的一些测试和构建基础设施,包含将 CITravis CI 迁徙到 GitHub Actions,在 Node 16 而不是 Node 15 上进行测试,通过 https 加载他们的测试监听器,以及增加更多自定义构建的精确测试。

不失去焦点

只管艰难,此版本中仍有一个 与焦点相干的修复

https://github.com/jquery/jqu…

即便在移除了 jQuery 焦点处理程序之后,咱们对焦点的非凡事件处理依然放弃连贯,这毁坏了任何后续的手动焦点触发器。例如当:

$elem.on("focus", function() {}).off("focus").trigger("focus");

那么 focus 不会触发。

在 addClass(array) 中跳过谬误

在不减少任何大小的状况下,增加了对跳过传递给 addClass or 的数组中的任何谬误值的反对removeClass

这使得代码如下:

elem.addClass([ "a", "","b"] ); // 增加 `a`&`b` 类。

与自定义 CSS 属性值的标准保持一致

当初为自定义 CSS 属性值 trimmed,以前相似的货色 --prop: value ; 会保留值中的前导和尾随空格,返回“value”。

附加带有 HTML 正文的脚本

团队在正则表达式中发现了一个问题,即在附加脚本时从脚本中去除 HTML 正文,最终在某些边缘状况下删除了局部可执行脚本。侥幸的是更多地依赖浏览器能够成为解决问题的办法,但团队依然须要在 3.x 分支中为 IE 去除 CDATA 局部。这将在 4.0 中删除。

jQuery.trim 的性能晋升

尽管 jQuery.trim 已在主分支上删除以反对原生的String#trim(筹备下一个次要版本上线),但对于分支反对的某些浏览器(例如 Android 4.0)在 3.x 分支上依然须要它。因为其正则表达式的构造,某些极其状况十分慢。目前这种状况曾经产生了变动,并且速度晋升十分显著。

https://github.com/jquery/jqu…

我的项目瘦身

有时你可能不须要 ajax,或者你更喜爱自主抉择申请库,而将 jQuery 用于 CSS 和类操作组合、Web 动画利用当中。所以除了蕴含 ajax 和成果模块的惯例 jQuery 版本外,团队还公布了一个不包含这些模块的“slim”版本。

现在,jQuery 的大小很少成为负载性能问题,精简版本比惯例版本小约 6k (gzip 压缩后)。这些文件也能够在 npm 包和 CDN 上找到:

https://code.jquery.com/jquery-3.6.1.slim.js
https://code.jquery.com/jquery-3.6.1.slim.min.js

持续应用 JQ

能够从 jQuery CDN 获取文件,或间接链接到它们:

https://code.jquery.com/jquery-3.6.1.js
https://code.jquery.com/jquery-3.6.1.min.js

还能够从 npm 获取此版本:

npm install [email protected]

写在最初

在单页面利用大行其道,各种陈腐框架层出不穷的时代,或者曾经很少有人会再关注 jQuery,甚至唯恐避之不迭,但它已经的功劳仍不可磨灭,jQuery 致力于打消浏览器差别,简化了操作 DOM 的办法,让晚期的开发者们能轻松实现动画、批改 CSS 等各种操作,说它是 JavaScript 史上应用最宽泛的一个库也不为过。

已经辉煌的 JS 框架现在慢慢每况愈下,咱们将会见证其终局,还是看着它一步步从新回归到公众视线?

最初我想用去年 jQuery 3.6.0 公布时底下寥寥数个评论中的一句话来作为结尾:

十分感谢您为保护和改良 jQuery 所做的所有辛勤工作,因为咱们中的许多人依然依赖 jQuery 来解决大多数生产中运行的我的项目。

退出移动版