手记

GitHub在其网站实现中移除对jQuery的使用

7月25日,一则发自Github员工的Twitter推文引起了不少开发者的关注和评论,以下是推文原文:

乍一看这消息我挺震惊的,还以为Github把jQuery的代码仓库从它的网站上给删掉了呢,多大仇多大怨啊要干这事儿!再仔细一读,好吧,发现果然还是自己英文不好啊......

Mislav说的大致意思就是:

他们终于完成了将jQuery从Github.com的前端代码中移除的工作,并用其他一些方式替代原先jQuery做的工作,比如:

  • 用原生的querySelectorAll(即document.querySelector()方法)去替代jQuery选择器的功能

  • 用fetch替代jQuery的ajax请求功能

  • 用delegated-events替代jQuery的事件处理功能

  • 用一些填充库去抹平和标注DOM API的差异

  • 大量使用自定义元素(即自定义标签,Web Component)

也就是说,他们其实是重构了Github.com这个网站,把原先由jQuery编写的代码,替换成了其他一些技术。从列出的这些替代方案来看,应该是使用了一些更加趋向于和W3C标准保持一致的技术方案,比如像querySelectAll, fetch等现代浏览器中的原生方法,以及像Web Component这样的趋势技术。

在后面回复的推文中,也给出了对上面列表中的一些补充说明信息:

Fetch: https://github.com/github/fetch (polyfill)
Delegated events: https://github.com/dgraham/delegated-events …
Custom Elements: https://github.com/search?q=topic%3Aweb-components+org%3Agithub …

从这些信息我们可以看出,Github.com对最新的Web标准是非常支持和积极推进的,在使用这些最新标准技术的同时,势必要放弃对一些老旧浏览器的支持(对,说的就是你,IE!),比如用户使用IE(不包括Edge)去打开Github.com,会得到提示去使用其他现代浏览器进行浏览。这种对标准的拥抱和对老旧技术的反抗,是值得肯定的。

不过在此推文的回复中,开发者的反应也是不一的,有的积极回应表示追随和支持,讨教作者具体的重构经验;也有很多开发者表现出对此举的质疑,认为是否有这个必要。

其实,以我的观点,Github在重构中移除jQuery,这并不是为了否认jQuery的价值,认为jQuery“不行了”,而只是为了更加突出对标准的关注,时代总是在不断发展,更先进的理念和标准被创造出来,推广和使用总是需要代价的,也需要有先行者和试错者。

对于jQuery,我们知道自从那个前端工具库开荒时代以来,jQuery从一大批开荒者中(Prototype、YUI、Dojo、Mootools...)脱颖而出,以优秀的浏览器兼容性、强大的功能、简洁的语法,成为被使用的最广泛的前端工具库,其插件生态圈更是庞大,成为前端开发者的百宝箱。jQuery也同时提供了兼容低版本浏览器和只支持现代浏览器的版本,我们可以按照项目的实际需要来选择使用。

在可见的未来,jQuery作为一个对原生JS API(Vanilla JS)的可选方案,还会继续存在,被广泛使用,毕竟它的语法也是非常简洁好用的。但是作为一个合格的开发者,也必须熟悉标准,知道怎么使用标准化的方案。

作为开发者的你,你怎么想呢?


6人推荐
随时随地看视频
慕课网APP