使用jQuery的缺点?

时间:2011-03-18 03:07:35

标签: javascript jquery jquery-ui frontend

我已经听过很多关于jQuery的好东西但是当前版本的jQuery有哪些缺点以及你在下一个jQuery版本中想要什么功能?

6 个答案:

答案 0 :(得分:14)

一个很大的缺点是它的抽象隐藏了JavaScript的“丑陋部分”,因此使学习JS变得更加困难。这是一个困扰JS社区的问题。最终发生的事情是你有设计师/开发人员可以进行简单的翻转和幻灯片演示,但是一旦真正的DOM操作发挥作用,就会遇到大问题。

另一个缺点不仅仅是尺寸,而是非常jQuery的真正含义。对于每个新的浏览器(最着名的是Internet Explorer),在幕后进行了大量工作以扩展代码库。这在IE8中最为明显,其中必须重写相当数量的jQuery以至少符合最新版本的IE。结果是你有一个巨大的方法和属性集合(自jQuery 1.5以来超过200KB)。即使有很多压缩/缓存文件的选项,你仍然会遇到相当大的加载时间(在良好的连接上几秒钟)。

其中一个选项是通过Google的内容分发网络(CDN)。它可以为您缓存jQuery并加快加载速度。但是,您现在依靠两个来源来完美运行。最近,谷歌推出了一个新的(> = 1.5)版本的jQuery。这导致一些不兼容的几个小时,并为jQueryUI和各种插件带来了问题。正如我之前所说,你依靠两个来源始终工作。保存您自己的本地化版本可以降低此风险。

我认为如果给予适当的规划和使用,它对大多数项目来说都是一个福音。但是,我强调需要使用适当的规划。首先问自己(或你的团队)你的项目是否真的需要华丽的淡化和伪补间。这些是为了最大限度地提高效率而应该最后添加的东西。

这些是我现在心中的问题。希望这对你将来有所帮助。

答案 1 :(得分:3)

对我来说,jQuery的任何缺点都不是关于它缺少什么功能,而是包含的不必要功能。

  • jQuery似乎包含了许多不同的方法来做同样的事情。有许多小方法是其他方法中相同功能的快捷方式。

    这意味着文档似乎在某些地方看起来非常复杂,并且很难记住做同样事情的每种不同方式。如果他们使用不同的方式做同样的事情,它可能会更难理解其他人的代码。

  • 代码库不断增长。不到30Kb的gzipped和minified仍然令人印象深刻,但它已经达到了比我曾经加载的任何CSS文件或标题图像更大的大小。它需要一种“单片内核”的Javascript库方法,这可能是它成功的一个重要因素 - 它包含了你想要的一切,而不是让它更模块化。

这不是一个巨大的抱怨。 jQuery非常强大而且功能强大。但我提出这个问题是因为最初的问题似乎假设jQuery只能通过添加更多功能来改进。我不同意 - jQuery已达到成熟度,缺乏功能不再是其主要缺点之一。

答案 2 :(得分:3)

如果问题是“我应该使用javascript库吗?”答案是肯定的。关于javascript的最糟糕的事情是不同的实现,使用js库将大大缓解这个问题。自从大约在2005年左右开始使用某种类型的库以来,没有太多专业的javascript工作完成。

如果问题更多是“JQuery的相对优势是什么?”,这里有一些要点

  • 它只是一个dom抽象库。如果你需要做更多的小动画或样式更改,jquery本身是不够的。

  • 话虽这么说,这是大多数人想要做的事情,这是它如此受欢迎的重要原因。非常受欢迎的问题是那些不认真的人,javascript开发人员倾向于认为javascript == jquery,实际上并非如此。

  • 基本上,如果要向页面添加一些简单的行为,jquery就太棒了。如果你正在构建一个“RIA”webapp,你想要更多地看看dojo(甚至是sproutcore,取决于你想要走多远)。如果您处于中间位置,MooTool将为您提供所需的一切。

  • 如果您是那种宁愿构建自己的工具集而不是去“Everything and the kitchen sink”类型框架的人,那么jquery + underscore + backbone将带您走得很远。

答案 3 :(得分:3)

相比什么?在什么情况下?就其本身而言,很难说它有任何缺点。

但在某些情况下,存在一些缺点:

  • 很大。 jQuery库是您服务器上的热门产品,也是最终用户必须下载的东西。最小化,CDN,缓存等都有助于最小化它,但如果你正在寻找超轻量级的JS解决方案,从头开始编写它可能会让你的文件很小。

  • 它所做的很多DOM CSS操作不一定是从可访问性POV优化的。它变得越来越好......特别是灯丝组正在做的所有ARIA东西

  • 不是每个人都是jQuery UI的粉丝。肯定是好的。但也有点沉重,恕我直言。

  • 如果您不了解JS的一些基础知识,可能会有点混乱。很高兴了解jQuery有时在幕后做什么。

但是,老实说,你必须挖掘才能真正抱怨它。恕我直言,jQuery + StackOverflow再次让Web开发变得有趣。 ; O)

答案 4 :(得分:1)

我认为这取决于我们所谈论的JavaScript专业知识水平。如果我们从初学者到中间角度谈论,那么缺点是它可能成为一个阻碍开发人员磨练其本机JS技能的拐杖(另一方面,它也可以成为INTO JS开发的桥梁 - 它肯定是我)。

一旦你对在纯JS中工作更感兴趣,主要的缺点是它以DOM为中心。随着您的编程变得更加以数据为中心,对DOM的偏见有时会妨碍。

随着代码变大,保持所有代码的组织也会变得有点棘手。

我认为我最希望看到的是某种依赖管理 - 例如,让我的脚本自动加载或不加载任何所需的插件和组件。

说了这么多,我绝对是jQuery的粉丝,它是我选择的JS库。我发现这些优势远远超过了弱点,并且它一直在不断改进。

答案 5 :(得分:0)

主要缺点(除了抽象javascript的一些关键概念这一事实)是将所有内容捆绑在一起的事实,因此库本身就会很大。

大型javascript文件=更多加载时间。

也不要误会我的意思,我喜欢jQuery ......我只是向你展示故事的另一面:)