前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >时隔一年多jQuery发布3.6.1新版本,你还在用JQ吗?

时隔一年多jQuery发布3.6.1新版本,你还在用JQ吗?

原创
作者头像
茶无味的一天
发布2022-10-06 17:08:05
2K1
发布2022-10-06 17:08:05
举报
文章被收录于专栏:品味前端品味前端

在今年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/jquery/issues/4867

即使在移除了 jQuery 焦点处理程序之后,我们对焦点的特殊事件处理仍然保持连接,这破坏了任何后续的手动焦点触发器。例如当:

代码语言:txt
复制
$elem.on("focus", function() {}).off("focus").trigger("focus");

那么 focus 不会触发。

在 addClass(array) 中跳过错误

在不增加任何大小的情况下,添加了对跳过传递给addClassor的数组中的任何错误值的支持removeClass

这使得代码如下:

代码语言:txt
复制
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/jquery/pull/5068#issuecomment-1189112865

项目瘦身

有时你可能不需要 ajax,或者你更喜欢自主选择请求库,而将 jQuery 用于 CSS 和类操作组合、Web 动画应用当中。所以除了包含 ajax 和效果模块的常规 jQuery 版本外,团队还发布了一个不包括这些模块的“slim”版本。

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

代码语言:txt
复制
https://code.jquery.com/jquery-3.6.1.slim.js
代码语言:txt
复制
https://code.jquery.com/jquery-3.6.1.slim.min.js

继续使用JQ

可以从 jQuery CDN 获取文件,或直接链接到它们:

代码语言:txt
复制
https://code.jquery.com/jquery-3.6.1.js
代码语言:txt
复制
https://code.jquery.com/jquery-3.6.1.min.js

还可以从 npm 获取此版本:

npm install jquery@3.6.1

写在最后

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

曾经辉煌的 JS 框架如今渐渐日薄西山,我们将会见证其终局,还是看着它一步步重新回归到大众视野?

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

非常感谢您为维护和改进 jQuery 所做的所有辛勤工作,因为我们中的许多人仍然依赖 jQuery 来处理大多数生产中运行的项目。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础设施改进
  • 不失去焦点
  • 在 addClass(array) 中跳过错误
  • 与自定义 CSS 属性值的规范保持一致
  • 附加带有 HTML 注释的脚本
  • jQuery.trim 的性能提升
  • 项目瘦身
  • 继续使用JQ
  • 写在最后
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com