Joel 总是说在使用 3rd 方库时要小心。从我最初的印象来看,jQuery 很棒。使用时应该注意什么?有什么限制?当我更多地使用它时,我以后会遇到什么头痛?
12 回答
我已经广泛使用它,我不得不承认,我还没有遇到任何严重的砖墙!我遇到了几个错误,我必须为自己找到一个快速修复,然后使用下一个 jQuery 版本进行额外测试以确保错误已得到正确处理,但这适用于任何第 3 方库,而不仅仅是 jQuery。
我认为这是一个很棒的库,我必须说,虽然关于 3rd 方库的建议有其优点,但在这个 Web 2.0 世界中,Javascript 的使用量猛增,浏览器之间存在如此多的小差异,拥有一个维护良好的库可以真正加快开发速度,因为它可以节省您必须自己完成所有跑腿工作的开销。
我想如果我要发出一个警告,那就是确保你不要过度使用它 - 虽然它通过抽象出你不需要担心的大量逻辑来真正加速 Javascript 开发,但总是存在风险您将开始编写效率低下的应用程序,因为您没有意识到您对浏览器的确切要求。因此,我建议您使用 Firebug 之类的工具进行大量分析,以检查引擎盖下发生了什么。
@mjc
$("a tip")
.you()
.can()
.chain()
.stuff()
.like()
.this();
和/或定义一个变量,为它使用 jQuery 函数:
var $tip = $("a tip");
$tip.choo();
$tip.choo();
$tip.train();
我在使用 jQuery 时遇到的一件事是,您最终会将很多项目链接在一起,如果您不小心,它往往会很快变得难以阅读。
我能想到的一个例子说明了这一点,在John David Anderson 的博客上:
有一个人写了一个日志函数,这样你就可以找出 whereYou(are).whenYoureCoding().inThe(middleOf).a(jQuery).trainWreck()。
我可以看到将事物链接在一起的力量,但我的猜测是,如果您需要在中途将事物记录到控制台,那么您可能已经走得太远了。从现在开始一周后,您可能也几乎没有机会阅读它。
jQuery 很棒——它可以做任何 javascript 可以做的事情,但速度更快,代码更少。它唯一的限制是 javascript 作为客户端脚本语言所固有的限制。像任何工具一样,可能会误用,但除非您的脚本需求非常基础,否则几乎没有理由不使用它。
我在阅读博客时遇到了以下内容。这并不是 jQuery 的真正限制,而是使用 jQuery 的 ASP.NET 开发人员经常犯的错误:
http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/
@BrilliantWater -大多数人不使用 jQuery 来“学习”,他们使用它是因为它使用起来更快、更容易,并且比自己创建所有方法带来的麻烦更少。整个“臃肿”的论点完全没有实际意义。jQuery 是最小的库之一,随着越来越多的人使用宽带,它的问题越来越少。
另外,由于 jQuery 由 GoogleCode 托管,它很可能已经在用户缓存中,因为有很多网站都在使用它!
jQuery 太棒了!我一直对自己说我需要学习另一个图书馆,但我真的不需要。jQuery 拥有我需要的一切。我知道它并不适合所有项目,但它肯定在大多数项目中占有一席之地!
@BrilliantWinter
jQuery 一点也不臃肿。它是最小的图书馆之一。
它的所有功能都是 jQuery 对象的扩展,这意味着您可以分离您不使用的任何功能,并使库的占用空间甚至小于其默认大小(15kb、缩小和 Gzipped)。
jQuery - 以及所有其他库 - 提供了一个在所有 A 级浏览器中都相同的 API。这种抽象使您的代码更清晰,更不容易出错。
最后,jQuery 被主要的“玩家”使用。谷歌、戴尔、Digg 和 NBC 等公司都使用该库。这不仅是一个大的批准印章,也是一个保证 jQuery 的开发人员在修改库时非常小心,确保没有中断和引入错误。
在编写任何有用的 javascript 时,我发现 jQuery 是必不可少的。也就是说,我正在开发的一个网站想要制作动画。我建议不要使用 flash,而是执行 jQuery 与 jQuery 很好地打包的相对“简单”的动画。我们使用了淡入淡出和幻灯片等。最后,浏览器处理的太多了(特别是 IE,但 FF 显示出压力的迹象),我们不得不将几乎所有的东西都缩回去。
使用 jQuery 编写代码和进行实验非常有趣。它有一个很棒的开发者社区,可以非常快速地回答问题。只是要小心不要太得意忘形!:)
jQuery 唯一的缺点是它过于简单易用。你会得到一个非常低的新手使用它并做一些非常奇怪和接近智障的事情。除此之外,jQuery 很漂亮,并且由天才和他的智能程序员手下精心制作,确保跨浏览器质量,减少开发人员的大量工作。不能出错。如果你不喜欢 jQuery,那你就有点过分了,可能洗澡的频率不够。
更新
这是我的一个非常古老的答案。如果您使用 querySelector 和 MDN 参考,那么 jQuery 就真的不再需要了,因为浏览器在大多数情况下已经融合为相同的,当然除非您仍然生活在 IE8 死亡领域的要求中。jQuery 也存在于全球范围内,如果您正在构建现代 JavaScript,这很糟糕。除了有一些不使用模块化语法库的老派插件之外,jQuery 在这一点上并不是真正有用。
开始关注模块化 JavaScript,因为这是 jQuery 之后的趋势。注意es6/es2015。开始使用 React/React Native 或 Angular 2 来制作应用程序,因为它在某种程度上赶上了。
对不起,约翰·雷西格。在这一点上,人们就像“约翰谁?” 尽管他在我的书中仍然是个天才。不过,我希望他能摆脱自己的桂冠,让事情变得更好。
有趣的是事情如何变化。
我是 jQuery 的忠实粉丝(我为它编写了插件和仪表板小部件就证明了这一点)。
需要注意的一件事是jQuery 支持哪些浏览器。文档站点目前似乎有问题。这是另一件需要注意的事情...... ;-)
我已经使用它大约 6 个月了,除了我团队中一些速度较慢的开发人员不接受它(可能是因为一些较长的链的外观令人生畏)之外,我没有遇到任何问题。
如果 jQuery 不适合,你总是可以考虑不同的框架。这是mootools的一个例子。
MooTools 是一个紧凑、模块化、面向对象的 JavaScript 框架,专为中高级 JavaScript 开发人员设计。它允许您使用其优雅、有据可查且连贯的 API 编写功能强大、灵活且跨浏览器的代码。