关于jQuery你可能不知道的11件事

WebFX总裁。比尔在互联网营销行业拥有超过25年的经验,专门从事SEO,用户体验,信息架构,营销自动化等。William在Shippensburg和MIT的科学计算和教育背景为MarketingCloudFX和WebFX的其他关键研究和开发项目奠定了基础。

jQuery是9年前发布的。从那时起,开源项目在web开发领域产生了不可估量的影响。研究像jQuery这样大的开源项目的起源是很有趣的。

没有人比创建它的John Resig更能给我们提供项目源代码的深刻见解。Resig最近注释了第一个已知的jQuery源代码副本。在这样做的过程中,他为这个项目的简单开始提供了一个独特的视角。

以下是我从阅读Resig的源代码注释中学到的一些jQuery事实。1.jQuery最初被称为JSelect。但是jselect.com域名不可用,所以JQuery这是。(后来名称大写改为“jQuery”。)2.奇怪的是,jQuery有一个知识共享许可。知识共享(CC)许可与创造性作品的关系最为密切。库存照片,PSD模板,图标集,UI工具包等。

但是CC许可并不适合开源代码。或者,更确切地说,有更好的开源许可选择,甚至在jQuery发布的时候。甚至是知识共享组织的人推荐我们使用免费和开源许可,例如MIT或GPL。开源促进会是一个致力于推广开源软件的组织,反对在某些知识共享许可下发布开源代码。

Resig承认对jQuery使用CC Attribution-ShareAlike许可是一个“糟糕的选择”。不久之后,该项目的许可协议切换到了MIT的许可协议。3.jQuery在创建时没有版本控制系统。今天这是难以想象的对于不使用版本控制系统(VCS)(如Git)的开源项目来说。比如,你怎么把它发布到GitHub上?

但是jQuery的创始人在开发项目的初始源代码时并没有使用VCS。公平地说:不使用VCS——即使是在大项目中——在jQuery发布时很常见。直到Resig收到了对他的JS库的贡献,jQuery项目才最终开始使用版本控制(它与SVN一起使用)。

4.jQuery的名字是从另一个项目“偷来”的。“jQuery”也是一个Java SQL库的名称。但是Resig是在Java库的项目所有者联系他之后才发现命名冲突的。

雷西格说他“感觉很糟糕”,他“绝对不想造成任何混乱”。我把这当成是无心之失。5.jQuery在纽约发布。jQuery于2006年1月14日在BarCamp NYC上首次公开亮相。BarCamp是一个以技术为中心的会议;主要是Web和开源技术。

6.jQuery很大程度上受到了其他开源项目的启发。在他的注释中,Resig提到了以下对jQuery开发有重要影响的项目:

唯一还在用的是"原型"Prototype的最新版本大约在一年前发布(v1.7.2)。名单上的其他产品已不再开发。

XPath早在1999年就达到了W3C推荐标准。与HTML和CSS不同,它还没有开发出新的标准。7.第一个jQuery插件是“jQuery的JSON”。jQuery的JSON由Michael Geary创建,于2006年1月25日发布,它允许您轻松地请求和输出JSON数据。默认情况下,该插件也是jQuery强大的可扩展性的第一个演示。

插件API是jQuery如此成功的原因之一。8.JSLint用于jQuery的质量控制。在整个原始的jQuery源代码中,Resig强调了其中一些不太好的JS,比如“粗糙的”正则表达式。(他的代码质量标准比我这样的普通人要高得多。)Resig说,这些问题最终都通过JSLint(一种流行的代码分析工具)解决了。

9.jQuery没有任何Ajax功能。异步web应用程序在2000年代早期到中期风靡一时。如今,所有的web应用程序都被期望具有异步功能。

没什么特别的。但在当时,这是一个真正革命性的概念。当时所有的web开发人员都在赶时髦。

我们都希望避免为了更新DOM的一小部分而重新加载整个页面。但是奇怪的是,jQuery在第一个版本中没有提供任何Ajax帮助器方法。10.如果没有必要,jQuery不会使用花括号。(你知道那时候还有谁不用花括号吗?查克·诺理斯)。对于块语句总是使用花括号是一种传统的最佳实践,即使JavaScript在某些情况下使它们成为可选的。

使用花括号可以防止错误。尤其是在团队中。如果通过JSLint这样的代码分析工具运行脚本,它会抱怨缺少大括号。但是jQuery项目最初倾向于省略可选的大括号。

“我真的不喜欢戴不必要的牙套,”瑞西格解释说。“这种……不幸的……风格偏好困扰了我们很长一段时间,导致了各种本可避免的逻辑错误。”在jQuery的第一个版本中,你会发现这样的代码:

If (!b) for (var j in a) this。风格[j] = a[j];其他的。Style [a] = b;

加上花括号,上面的代码可以写成:

如果(!b) {for (var j in a) {this。风格[j] = a[j];}} else{这。Style [a] = b;}

注:如果没有必要,我也喜欢不使用花括号。

当时,我以为这样更容易读懂。不,老实说,这是因为没有花括号类似于当时发布的一个很酷的新web应用开发框架的语法。11.jQuery的核心方法是永恒的。您最喜欢的jQuery方法,例如. css ().toggle (),告诉(),hide ()在API中仍然支持。即使对jQuery的API进行了大量的添加,但在近十年的时间里,它们也没有被引入任何突破性的变化。

Resig说:“你很有可能把2006年前后使用jquery的代码放到一个现代版本中,它仍然可以工作。”这个你已经知道了:jQuery使web开发更容易。jQuery首先吸引我的是它的语法。

我记得我在想这是多么简洁明了啊。选择和操作DOM只需要几行代码$ ()功能工作。您不必实例化一个对象来保存选定的元素、遍历该对象并在对象中的每个元素上绑定事件侦听器。

您可以在一条语句中将DOM选择链接到任意多个方法。从一开始就认为这是jQuery的一个特性,这真是令人兴奋。我还记得jQuery刚出现的时候。

我想我使用的是Prototype + moo.fx。也可能是道场。或者Prototype + script.aculo.us。

我真的不记得了,因为感觉我把它们都用完了。当然,在某种程度上,我决定使用MooTools。我喜欢MooTools。

我甚至写过一本书关于它。(致购买MooTools这本书的两个人:谢谢爸爸妈妈,你们太棒了。你一直很支持我。

)但是,不可否认的是,我用jQuery做事情要快得多。此外,我更容易让经验不足的开发人员使用jQuery,因为与prototype、Dojo或GWT相比,jQuery具有直观的语法和概念。jQuery与其他库配合得很好,认识到现代web开发技术正朝着依赖许多第三方项目依赖的方向发展。

当我通读John Resig的注释时,我很快意识到易用性从第一天起就是项目的基本理念。你可以在带注释的jQuery源代码中找到注释,比如:

  • “这是我非常热衷的事情允许您编写一些非常简洁的代码
  • “我一直都很喜欢.wrap ()方法。从头开始写是一件很痛苦的事情,但是便利作为一个单一的方法。”

而且,jQuery是少数几个强调良好的、用户友好的文档的重要性的开源项目之一。在那个开源和web开发的时代,这种观念几乎是反主流文化的。当时的想法似乎是“你是一名开发人员。

想办法。”一个开源的工具开发人员2000年代中期。它有开发者的用户体验记住吗?严重吗?

这太奇怪了。jQuery的用户友好哲学使它对像我这样的普通web开发人员非常有吸引力。如果你看看目前最大、最成功的操作系统项目——Bootstrap、WordPress、Sass、Chrome(这些项目甚至都自带开发工具)——让开发人员更容易的想法是它们之间的共同之处。

jQuery是更多的而不仅仅是一个帮助我们构建网站并从开发过程中节省几个月时间的工具。jQuery最大的成就不是数以百万计的网站都在使用它。这只是一个偶然的结果。

对我来说,jQuery最伟大的事情——在阅读注释版本之前我就已经知道了——是这个小小的,只有83kb的JS库在开源文化和web开发行业中引发了巨大的变化。我不太确定这就是约翰·雷西格的初衷。但我也不认为他在九年前在BarCampNYC发布了他简陋的JavaScript库之后对这件事有任何发言权。

Resig在jQuery的源代码上创建了40条注释。在这里查看所有内容:jQuery发布。还有,你可能想读读他的博客关于注释。

此外,要找到更多有趣的jQuery知识,请阅读该项目的官方介绍历史文档。

雅各Gube是Six Revisions的创始人。他是一个前端开发人员。与他联系推特

WebFX职业

加入我们的使命,为全球各地的企业提供行业领先的数字营销服务-同时建立您的个人知识并成长为个人。

我们招聘! 视图30 +职位空缺!