jQuery 4 终于发布了... (什么!?)

BBetter Stack
AI/미래기술자격증/평생교육컴퓨터/소프트웨어

Transcript

00:00:00jQuery 4 终于发布了。别担心,你并没有穿越时空,这
00:00:04只是我们自 2016 年以来的首次重大版本更新。它已经处于测试阶段两年了,
00:00:09而距离 jQuery 首次面世已经过去了 20 年。
00:00:12你可能会惊讶地发现 jQuery 依然举足轻重。全球 88% 的网站
00:00:17仍在映射使用它,这很大程度上要归功于 WordPress,但你也能看到一些
00:00:21知名大厂也还在运行它。毕竟,如果东西没坏,就不要去修它。
00:00:25不过这次更新确实可能会导致一些兼容性问题,因为他们借此机会
00:00:29完成了多年来一直想做的所有破坏性变更,包括精简过时代码、
00:00:32移除弃用的 API 和从未公开的函数,以及大量的错误修复。
00:00:38那么让我们直接开始,看看这些核心变化,以及 jQuery 在这
00:00:4220 年间究竟进化了多少。
00:00:49第一个重大变化:让我们告别 Internet Explorer 10 及更早版本。
00:00:53jQuery 4 已经停止支持这些版本了。但如果你正在用 IE 11 观看此视频,也不必惊慌,
00:00:58对它的支持要到 jQuery 5 才会停止,所以你还有时间点击那个订阅按钮。
00:01:02除此之外,他们还停止了对旧版 Edge、过去 3 个版本之前的 iOS、
00:01:07过去 2 个版本之前的 Firefox 以及安卓原生浏览器的支持。
00:01:12可见我们正在全面迈向现代化。事实上,接下来的三个变化都与此有关。
00:01:17来看第二个变化:他们正将 jQuery 源码从 AMD 迁移到 ES 模块,
00:01:22因此它现在可以与 Vite、Webpack 等现代构建系统完美配合,无需任何特殊技巧。
00:01:27所以,为什么不在你的下一个项目中尝试安装它呢?哪怕只是为了好玩
00:01:31或者怀旧一下。
00:01:33说到怀旧,这次更新会让你看到 JavaScript 进步了多少。
00:01:36因为在第三个变化中,他们移除了一堆 jQuery 函数,原因很简单:
00:01:41原生 JavaScript 已经追上来了。这包括 isArray、parseJSON、trim、now、
00:01:46isNumeric、isFunction 等等。你现在几乎可以在原生
00:01:51JavaScript 中完成所有这些操作,而不需要额外的库。想想也挺不可思议,
00:01:56我们最初竟然需要一个库来处理这些基础功能,但这就是语言进化的必经之路。
00:02:00说到进化,浏览器也在进步。因此第四个变化,也是最后一个现代化的重大更新,
00:02:01是他们终于修复了焦点顺序问题。
00:02:06如果你不知道的话,多年来各大浏览器在 focus 和 blur 事件的顺序上一直没达成共识,
00:02:11所以 jQuery 以前有自己的一套定义来保证跨浏览器的一致性。
00:02:15但现在,由于他们弃用了旧版浏览器,除了 IE 以外的所有受支持浏览器
00:02:20都有着完全相同的事件顺序,因此 jQuery 不再需要覆盖原生居为了。
00:02:24你可以看到团队在这里专注于让 jQuery 现代化,因为过去让 jQuery 大放异彩的功能,
00:02:29大多最终都被添加到了原生 JavaScript 中。
00:02:34不过 jQuery 中仍有一些可以现代化的东西,比如 Deferreds 和 Callbacks,
00:02:38它们现在可以用 Promises 替代(除非你还在用 IE 11);还有一些
00:02:42以前人们用 jQuery 做的动画,现在用 CSS 就能轻松实现。
00:02:47如果你想更进一步,他们推出的精简版(slim build)剔除了大量
00:02:52这些额外的模块,体积仅为 19.5 KB。我觉得这种做法非常棒:
00:02:55在完整包中为有需要的人保留这些函数,
00:03:01同时提供一个不含任何现今多余功能的精简版本。
00:03:04以上就是主要的核心变化,当然还有大量的错误修复和微调,
00:03:08其中一些甚至可以追溯到多年前。我能找到的最早的一个是 2014 年的,
00:03:12是关于 jQuery 自动将 JSON 提升为 JSONP 的问题,现在已经修复了。
00:03:17甚至还有一个 2015 年的问题,我记得我以前也遇到过:jQuery 的 CSS 设置器
00:03:22会自动给任何没写单位的数值加上像素(px)。
00:03:28这也被修复了。除此之外还有很多值得你去探索的地方,
00:03:33甚至包括一些随手修复的拼写错误。当然,这些要在视频里逐一讲解会花很长时间。
00:03:37就个人而言,我只想看看 jQuery 现在的样子,看看它是如何走过来的,
00:03:42因为它确实是 Web 开发史上的一段精彩历史。
00:03:46或许说它是“历史”还有点不礼貌,因为它目前依然被活跃地使用和维护着。
00:03:51虽然我今天肯定不会放着 React 或其他现代框架不用而跑去用 jQuery,
00:03:56但它提醒了我们,互联网是建立在技术层层叠加之上的。
00:04:01有时候,正是这些乏味、简单且陈旧的工具在维系着整个网络,
00:04:06特别是那些没人敢乱动的关键旧项目。所以我想问问看到这里的各位,
00:04:10你们用过 jQuery 吗?或者现在还在用吗?请在评论区告诉我,
00:04:15顺便点个订阅。一如既往,我们下期再见。
00:04:19you in the next one.

Key Takeaway

jQuery 4 通过移除过时代码、支持现代构建系统和修复长期存在的 Bug,在保留 Web 历史底蕴的同时实现了现代化的华丽转身。

Highlights

jQuery 4 是自 2016 年以来的首次重大版本更新,尽管它已诞生 20 年,但全球仍有 88% 的网站在使用它。

新版本全面拥抱现代化,停止支持 Internet Explorer 10 及更早版本,并计划在 jQuery 5 中彻底告别 IE 11。

源码从 AMD 迁移至 ES 模块,能够无缝适配 Vite 和 Webpack 等现代前端构建工具。

大量冗余的原生 JavaScript 替代函数(如 isArray, trim)被移除,显著精简了代码库。

修复了长期困扰开发者的跨浏览器事件顺序(focus/blur)问题,并解决了追溯至 2014 年的多个陈旧 Bug。

提供仅 19.5 KB 的精简版(Slim Build),在保留核心功能的同时剔除多余模块。

Timeline

jQuery 4 发布背景与市场现状

视频开篇介绍了 jQuery 4 这一备受期待的重大版本更新,这是该库自 2016 年以来的首次飞跃。尽管它已经处于测试阶段两年之久,且整体历史长达 20 年,但在互联网中的地位依然稳固。目前全球约 88% 的网站仍在使用它,这主要得益于 WordPress 的庞大生态系统以及各大知名公司的持续采用。演讲者强调了「东西没坏就不要修」的原则,但同时也指出为了现代化,团队在这次更新中勇敢地引入了多项破坏性变更。这种平衡旨在精简过时的 API,同时确保 jQuery 在现代开发环境中依然具备生命力。

核心变革:告别旧版浏览器与架构升级

这一章节详细说明了 jQuery 4 在浏览器支持方面的重大调整,最核心的变化是彻底停止对 IE 10 及更早版本的支持。此外,旧版 Edge、老旧版本的 iOS 浏览器和安卓原生浏览器也都在淘汰之列,这标志着库的全面现代化。在内部架构上,jQuery 源码从陈旧的 AMD 模式正式迁移到了 ES 模块。这一转变意味着开发者现在可以轻松地将 jQuery 集成到 Vite 或 Webpack 等现代构建系统中,无需再配置复杂的补丁。这种技术栈的对齐,旨在鼓励开发者在现代项目中甚至为了「怀旧」而去尝试这个经典库。

功能精简与原生 JavaScript 的崛起

演讲者通过分析被移除的函数,展现了 JavaScript 语言在过去二十年间的巨大进步。由于原生 JavaScript 现在已经完美支持 isArray、parseJSON、trim 和 now 等功能,jQuery 4 决定移除这些冗余的 API 以减轻包体积。这不仅反映了 Web 标准的成熟,也证明了许多曾经需要第三方库来实现的基础功能,如今已成为语言的标配。这种「瘦身」过程是技术进化的必经之路,显示了 jQuery 在功能重叠时的果断舍弃。回顾这些变化,能够让人真切感受到 Web 开发从碎片化走向标准化的艰辛历程。

浏览器一致性修复与精简版本发布

本段重点讨论了跨浏览器一致性的优化,特别是困扰开发者多年的 focus 和 blur 事件触发顺序问题。由于不再需要支持极低版本的浏览器,jQuery 能够利用现代浏览器的一致性表现,停止覆盖原生的事件逻辑。同时,针对现代 Web 需求,团队还推荐使用体积仅为 19.5 KB 的精简版(Slim Build),该版本剔除了在 CSS 动画和 Promise 盛行时代下显得多余的模块。对于仍需处理特殊逻辑的开发者,Deferreds 和 Callbacks 依然保留在完整包中,但建议在非 IE 11 环境下使用原生 Promise。这种模块化的策略,在满足怀旧需求的同时也兼顾了极简主义的性能追求。

陈旧 Bug 修复与 Web 技术的层级思考

在视频的最后部分,演讲者列举了一些令人惊讶的长期 Bug 修复,其中包括一个从 2014 年就存在的 JSONP 自动提升问题。此外,jQuery 以前会自动为未加单位的数值添加像素单位的逻辑也被修正,展现了开发团队对代码细节的执着。尽管在 React 等现代框架横行的今天,jQuery 显得有些过时,但它依然是维系许多关键旧项目的核心工具。视频总结认为,互联网是建立在不同技术层级之上的,这些「乏味且陈旧」的工具实际上是网络世界的稳定基石。最后,演讲者邀请观众分享自己使用 jQuery 的经历,并鼓励大家持续关注这一 Web 开发史上的活化石。

Community Posts

No posts yet. Be the first to write about this video!

Write about this video