jQuery 已“死”?为清除技术债,我们删掉了前端所有 jQuery 依赖

内容分享7天前发布
1 20 0

jQuery 已“死”?为清除技术债,我们删掉了前端所有 jQuery 依赖

近期,英国公共部门信息网站 GOV.UK 前端开发主管 Matt Hobbs 宣布该公司删除了 jQuery 作为所有前端应用程序的依赖项,这意味着“在所有 13 个 FE 应用程序中,JS 大小减少了 32 KB(31% ~49% 之间)”。

jQuery 已“死”?为清除技术债,我们删掉了前端所有 jQuery 依赖

一些关键指标得到优化

Matt 也在推特上分享了几组数据,说明了在删除 jQuery 后一些关键指标得到了优化。

  • 移除页面标签限制并查看所有页面 RUM 数据, 75% 用户的页面都有类似的下降:

jQuery 已“死”?为清除技术债,我们删掉了前端所有 jQuery 依赖

  • 在 75% 的页面中仅检查 Android 用户,可以看到 JS 长任务改善了 7%:

jQuery 已“死”?为清除技术债,我们删掉了前端所有 jQuery 依赖

  • 50% 用户的移动设备上的 JS Long Tasks 有 10% 的改善:

jQuery 已“死”?为清除技术债,我们删掉了前端所有 jQuery 依赖

  • 而对于 95% 用户,阻塞时间则减少了 10% :

jQuery 已“死”?为清除技术债,我们删掉了前端所有 jQuery 依赖

“这些用户会遇到严重不利的网络和设备条件,每一次性能提升对他们来说尤其重大。”Matt 说道。

根据 Matt 说法,删除 jQuery 的本意是清理技术债。“它最初是为了支持浏览器而存在的,但随着时间的推移,情况发生了变化,所以 bits 可以被删除。我想在这之后会重新评估,看看还有什么是不再需要的。” Matt 表明。

“大多数事情都不再需要 jQuery 了”

jQuery 是一套跨浏览器的 JavaScript 库,可以简化 HTML 与 JavaScript 之间的操作。截至 2021 年,有将近 84% 的移动页面使用 jQuery。jQuery 是最受欢迎的 JavaScript 库之一,它的一些操作已经反映在标准 Web API 中。

JQuery 创建于 2006 年,主要是为了协助开发者处理当时浏览器的不足。当时谷歌浏览器还未流行,人们饱受 Internet Explorer 之苦。而 JQuery 开发者可以使用 CSS 选择器和函数可以轻松地遍历和操作 DOM,

此外,JQuery 还提供了一些开箱即用的函数来做动画 DOM 元素,而无需弄乱 CSS。在没有 jQuery 之前发出 AJAX 请求很麻烦,但使用 JQuery 只需几行代码即可完成。JQuery 提供了一个可以在大多数浏览器上工作的 API,这在当时使用 JavaScript 是很难实现的。

但在过去的几年里,JavaScript 已经成熟了许多,它支持许多新的 API,其社区也构建了许多库来填补 jQuery 可能留下的任何空白。

目前,开发者几乎可以在原生 JavaScript 中做任何 jQuery 可以做的事情。例如,可以使用带有 querySelector 和 querySelectorAll 的 CSS 选择器语法来选择元素,使用 classList API 在元素上添加、删除和切换类,使用 addEventListener 将事件处理程序附加到 DOM 元素和窗口等等。

同时随着 Angular、Vue 和 React 等框架的出现和流行,一直未有特别创新的 jQuery 更显“老态”。“对我来说,他们 (jQuery ) 就像是那个随着时代变迁没有更新知识的老灰胡子。”有网友直言。

“目前,大多数事情都不再需要 jQuery 了。”有网友评论道,“我个人发现普通的 JS API 和 fetch 甚至比 jQuery 的东西更干净。人们依旧出于习惯使用 jQuery,是由于摆脱它需要做许多工作。”

jQuery 已“死”?

近几年,业内对于“jQuery 是否已死”的讨论一直没停过。实际上,一些大型、资金充足的网站已经“用脚投票”,正在逐渐摆脱对 jQuery 的依赖。

2018 年,GitHub 宣布从 GitHub.com 的前端代码中完全移除了 jQuery。“早期,jQuery 对我们意义重大。”GitHub 前端工程团队在方式发布的文章里表明。“在 GitHub 的早期阶段,jQuery 让小型的开发团队能够快速进行原型设计并开发出新功能,而无需专门针对每个 Web 浏览器调整代码。”

但随着 GitHub 成长为一家拥有数百名工程师的公司,jQuery 带来的价值已经随着时间的推移而下降。列如技术债会随着依赖项的增多而增长,给企业带来很大的维护成本。因此,GitHub 最终决定删除 jQuery。不过,GitHub 没有选择另外的库或框架,而是使用标准的浏览器 API 来实现。

不只 GitHub,Bootstrap 最新版本也将删除 jQuery。

尽管被认为已经过时,但 jQuery 依旧是占主导地位的 JavaScript 库。今天的开发人员可能没有意识到在使用 jQuery,由于它被嵌入在了许多大型开源项目里面,其中最著名的就是 WordPress。

“大多数网站都不需要复杂的开发框架,它们大多是具有一些动态行为的静态网站,这种网站一般用 WordPress 编写。jQuery 在这个场景下依旧很流行,由于它既简单又有效,人们觉得没必要停止使用它。”jQuery 开发者 Micha Gobiowski-Owczarek 在接受外媒采访时说道。

Micha Gobiowski-Owczarek 也明确表明,为了不与浏览器冲突,jQuery 不会修改原生原型,而是用 jQuery 包装器对象包装 DOM 节点,每个操作都会创建一个新的包装器对象。大多数情况下,这并不重大,但对于具有大量 DOM 操作的、超级复杂的应用程序来说,可能会成为一个问题。

未来的很长一段时间里,jQuery 还继续会是 WordPress 的一部分,由于它很难在不破坏向后兼容性的情况下将它删除。但一些改变已经发生,如 WordPress 创建的 Gutenberg 编辑器不依赖于 jQuery。

随着时间的推移, WordPress 肯定会逐步更新技术,这是一个渐进的过程,jQuery 的最终去留也很难说。但不可否认的是,jQuery 为前端带来了重大的影响。

参考链接:

https://thenewstack.io/why-outdated-jquery-is-still-the-dominant-javascript-library/

© 版权声明

相关文章

20 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    吾皇万睡 读者

    这年头真不是很需要jquery了,原生基本都能代替

    无记录
  • 头像
    即正义 读者

    怎么现在又开始原生了

    无记录
  • 头像
    未工谈家居 读者

    还是觉得jq用起来比较舒服

    无记录
  • 头像
    温霜降hu 投稿者

    技术无所谓新不新,管用就行

    无记录
  • 头像
    美人张三疯 读者

    可能用习惯了,我觉得jq挺灵活的呀,就是操作代码有点多

    无记录
  • 头像
    马明兵 读者

    放心以前端的发展,过不了几年又会轮回的,现在的前端早已经不是html+css+js了

    无记录
  • 头像
    高情商对话 读者

    jq已经死掉了,你挑的嘛偶像

    无记录
  • 头像
    尖尖 读者

    截至 2021 年,有将近 84% 的移动页面使用 jQuery~~jquery就是王者呀!其他的都弱爆了

    无记录
  • 头像
    惠琼 读者

    评论区估计都是以前搞全栈开发的,确实,以前没有什么前端开发人员,就是美工,把UI与静态HTML搞定,剩下交给开发人员。现在人力成本剧增,项目周期变长,测试时间变长,bug率增多,扯皮的事情也变多,内耗严重。

    无记录
  • 头像
    晓莉英语 投稿者

    2008年,专门去书店学习jquery,那个时候的jquery那么年轻。

    无记录
  • 头像
    王晨皓 读者

    绕来绕去瞎折腾

    无记录
  • 头像
    宋波涛 读者

    一个手机app几百M,甚至一个G,真TMD恶心!

    无记录
  • 头像
    吃兔子啦 读者

    你错了,jQuery和mvvm是相辅相成,不可能互相替代

    无记录
  • 头像
    你挺抽象 投稿者

    分久必合合久必分

    无记录
  • 头像
    见屿鸣 读者

    一个vue,打包一下光前段就是50M,我整个工程才50M。你说说,优势在哪儿?

    无记录
  • 头像
    可口可乐迷你罐w 读者

    谁会在乎那省下的32KB呢?

    无记录
  • 头像
    艾珂 读者

    这边抠抠搜搜的省下32KB,那边却用这个或者那个越来越臃肿的前端框架。。。

    无记录
  • 头像
    ·啵啵瑤· 投稿者

    其实很简单 让浏览器厂商在内核中内置jquery

    无记录
  • 头像
    yachne9_ 投稿者

    怎么用原生实现2022-5-20 15:15:15转为:n分钟n小时n天n周n月n年? 如2022-5-20 15:15:15转前:转后:5分钟前昨天2天前5年前

    无记录
  • 头像
    小疯狗的乃姐 投稿者

    jq是上一个时代的产物,解决的事那个年代的问题。虽然现在有很多的技术可以替代它,但我们无法否定它曾经的伟大

    无记录