时隔一年多jQuery发布3.6.1新版本,你还在用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/jquery/issues/4867

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

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

那么 focus 不会触发。

在 addClass(array) 中跳过错误

在不增加任何大小的情况下,添加了对跳过传递给addClassor的数组中的任何错误值的支持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/jquery/pull/5068#issuecomment-1189112865

项目瘦身

有时你可能不需要 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 jquery@3.6.1

写在最后

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

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

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

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

原文地址:https://cloud.tencent.com/developer/article/2135111

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340