isN*_*247 7 javascript ajax jquery dom-traversal
编辑(2012-04-12):由于这个问题被问到现在可以(从jQuery 1.8开始)制作jQuery的自定义构建.
对于我工作的大多数JavaScript项目,我想要一个简单,轻量级的UI堆栈.
目前我在我的项目中使用jQuery,但是当我实际上后退并查看代码时,我只是真正使用它:
是否有另一个库(我不想自己处理所有各种跨浏览器和ES3/ES5差异)可以提供这些功能,而不需要我个人不需要的所有附加功能?
Dojo浮现在脑海中,但到目前为止我对此几乎没有什么经验,理想情况下我想听听那些使用过多个库的人.
在最小化形式下,Dojo 为 136kb,jQuery 为 96kb。搬到道场并没有朝着正确的方向发展。
您应该考虑的问题是:
仔细检查每一个,除非您找到另一个在这些方面得分很高的库,否则 jQuery 可能是您最好的选择。它为您提供的功能出人意料地紧凑,而且它实际上没有很多您想要的东西列表中没有的东西。jQuery 在保持核心库专注于其中心任务方面做得非常好,让 UI 内容进入 jQueryUI,而大多数其他内容进入它们自己的插件库。
如果您热衷于优化您所包含的代码,使其只成为您需要的内容,那么您可能需要看看 YUI。它被设计为模块化,以便您可以仅指定您想要的模块,然后您可以预构建一块仅包含这些模块的代码(或者您可以动态加载您想要的模块)。我的感觉是,YUI 在这方面有些过度设计,对于快速项目来说使用它很麻烦,因为你必须花时间找出你需要哪些模块并每次生成该构建。一旦加载了一堆模块,它也不是那么紧凑,这就是您发现 jQuery 就其包含的内容而言令人惊讶的紧凑的地方。
一般来说,您不应该担心库中包含的但您没有使用的东西。只需查看确实满足您需求的库的总体规模和适用性即可。您可能会找到一个只做您想要的事情并且比 jQuery 更大并且没有广泛缓存的库,因此这不是一个胜利。
有一些紧凑的库仅用于 ajax 或仅用于 deferred,但您可能需要一个将 ajax 和 deferred 一起实现的库,这样您就可以将 deferred 与 ajax 一起使用(就像 jQuery 所做的那样)。进行广泛 DOM 操作的库往往不仅仅如此,因为它们更多地被设计为您的核心库,并且大多数人除了 DOM 操作之外还有其他需求。
最后,我建议您不要关心您的图书馆中有哪些您不需要的内容。只需评估它与替代方案的整体适用性。