jQuery 4.0 与现代 Web 开发
你应该升级到 jQuery 4.0,还是原生 JavaScript 终于让这个库过时了?随着 jQuery 在近十年来的首个主要版本于 2026 年 1 月发布,维护现有应用程序的前端开发者面临一个实际的决策:升级、保持现状,还是完全迁移到其他方案。
本文将详细解析 jQuery 4.0 的实际变化、真实的升级风险,以及现代 jQuery 相对于原生 JavaScript 在何时仍然有意义。
核心要点
- jQuery 4.0 放弃了对 IE10 和 Edge Legacy 的支持,但目前仍支持 IE11。
- 该库现在具有现代化的打包方式,改进了 Trusted Types 和 CSP 兼容性。
- 重大变更包括移除已弃用的 API、更新的 focus/blur 事件顺序以及修改的 Ajax 行为。
- 对于新项目,原生 JavaScript 涵盖了大多数 jQuery 用例,但 jQuery 对于遗留应用程序和渐进式现代化仍然实用。
- 使用 jQuery Migrate 插件在升级前识别已弃用的模式。
jQuery 4.0 的变化
jQuery 4.0 在移除累积的遗留代码的同时,对库的基础进行了现代化改造。以下是升级规划中需要关注的内容。
浏览器支持基线
jQuery 4.0 放弃了对 Internet Explorer 10、Edge Legacy(Chromium 之前的版本)和旧版移动浏览器的支持。此版本仍然支持 IE11,为团队在未来主要版本移除它之前提供了额外的现代化时间。
精简版(slim build)更进一步,移除了 Ajax 模块和动画支持以减小体积。它还移除了 Deferreds、Callbacks 和 queue,假定在现代环境中使用原生 Promises。
现代化打包
jQuery 4.0 引入了现代化的构建工具和包导出方式,提高了与 Vite、Rollup 和 webpack 等现代打包工具的兼容性。如果你的构建流程期望使用 CommonJS 或 AMD,可能需要进行调整——尽管大多数工具链会自动处理这个问题。
有关环境详情,请参阅官方的 jQuery 4.0 升级指南。
安全性改进
jQuery 4.0 添加了 Trusted Types 支持,并改进了内容安全策略(CSP)兼容性。以前的版本在某些 API 路径中可能会违反严格的 CSP 配置。对于执行现代安全策略的团队来说,这是一个有意义的改进。
发布公告中详细概述了这些安全变更:jQuery 4.0.0 Release。
移除的 API 和行为变更
长期弃用的工具函数已被移除。精简版完全移除了 Deferreds 和 Callbacks,假定使用原生 Promises。JSONP 自动提升被移除,改为在需要时显式使用 CORS 或 JSONP。FormData 现在可以自动与 jQuery.ajax 配合使用。
最微妙的重大变更:focus/blur 事件顺序现在遵循 W3C 规范,而不是 jQuery 历史上的跨浏览器标准化。依赖旧顺序的代码可能会出现意外行为。
jQuery 与原生 JavaScript:真正的权衡
问题不在于原生 JavaScript 能否替代 jQuery——显然可以。问题在于对于你的特定代码库是否应该这样做。
何时原生 JavaScript 更胜一筹
对于新项目,原生 API 如 document.querySelector()、fetch() 和 classList 涵盖了 jQuery 历史上提供的大部分功能。现代浏览器一致地实现了这些 API。在没有库开销的情况下,性能略好,并且避免了外部依赖。
如果你正在使用现代框架构建全新应用程序,添加 jQuery 会造成不必要的负担。
何时 jQuery 仍然有意义
jQuery 在以下情况下仍然实用:
- 遗留应用程序:大量使用 jQuery 且重写不合理的应用
- 渐进式现代化:逐步更新的场景
- 企业技术栈:具有稳定、长期代码库和插件依赖的系统
- CMS 平台:如 WordPress 等已经包含 jQuery 的平台
仍在运行 jQuery 的大量网站并非都是技术债务——许多是稳定的系统,库在其中继续良好运行。
Discover how at OpenReplay.com.
升级到 jQuery 4:关键风险
从 jQuery 3.x 升级并非即插即用的替换。需要注意以下摩擦点:
移除的工具函数:审查代码库中已弃用的方法。jQuery Migrate 插件可识别有问题的模式。
CSS 单位处理:关于无单位值的一些边缘情况已发生变化。
事件顺序:测试任何依赖 focus/blur/focusin/focusout 序列的代码。
Ajax 行为:FormData 处理和 JSONP 变更可能影响 API 调用。
大多数应用程序只需进行最小的更改即可升级,但”最小”并不等于”零”。请预留测试时间。
你应该升级吗?
如果满足以下条件,请升级:你需要改进的 CSP/Trusted Types 支持,计划长期使用 jQuery,或希望获得当前的安全更新。
如果满足以下条件,请保持 3.x:你的应用程序稳定,升级测试不可行,或者你无论如何都在计划框架迁移。对于无法立即升级的团队,存在扩展支持选项。
如果满足以下条件,完全跳过 jQuery:你正在使用现代框架从头开始,或者你的原生 JavaScript 覆盖范围已经足够。
结论
对于致力于使用该库的团队来说,jQuery 4.0 是一次合理的现代化升级。它更安全,并与当前浏览器标准保持一致。但如果你原本就没有使用 jQuery,这不是采用它的理由。
对于现有应用程序,根据你的安全要求、插件依赖和测试能力来评估升级——而不是基于 jQuery 是否”仍然相关”。对于数百万生产应用程序来说,它显然仍然相关。
常见问题
并非完全兼容。jQuery 4.0 移除了几个已弃用的 API,并在 focus/blur 事件顺序和 Ajax 处理等方面改变了行为。在升级前使用 jQuery Migrate 插件扫描代码库中不兼容的模式。大多数应用程序只需进行少量调整,但测试是必不可少的。
jQuery 4.0 放弃了对 Internet Explorer 10 及更早版本的支持,但仍然支持 IE11。如果你的应用程序必须支持 IE11 用户,你可以升级,同时为其在未来主要版本中的最终移除做好规划。
对于大多数新项目,原生 JavaScript 是更好的选择。现代浏览器 API 如 querySelector、fetch 和 classList 提供了等效功能,无需额外依赖。仅在与现有 jQuery 代码库集成或在已包含 jQuery 的 CMS 平台上的项目中保留 jQuery。
首先识别你实际使用的 jQuery 功能。用 querySelector 和 querySelectorAll 替换 DOM 选择,用 fetch 替换 Ajax 调用,使用 classList 进行类操作。渐进式迁移,测试每个更改。对于复杂的应用程序,考虑在遗留部分保留 jQuery,同时用原生方式编写新代码。
Gain Debugging Superpowers
Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers. Check our GitHub repo and join the thousands of developers in our community.