当需要DOM遍历,$ .ajax和Deferred时,替代jQuery

isN*_*247 7 javascript ajax jquery dom-traversal

编辑(2012-04-12):由于这个问题被问到现在可以(从jQuery 1.8开始)制作jQuery的自定义构建.


对于我工作的大多数JavaScript项目,我想要一个简单,轻量级的UI堆栈.

目前我在我的项目中使用jQuery,但是当我实际上后退并查看代码时,我只是真正使用它:

是否有另一个库(我不想自己处理所有各种跨浏览器和ES3/ES5差异)可以提供这些功能,而不需要我个人不需要的所有附加功能?

Dojo浮现在脑海中,但到目前为止我对此几乎没有什么经验,理想情况下我想听听那些使用过多个库的人.

Bog*_* M. 5

看看http://microjs.com/并使用您只需要的东西.


jfr*_*d00 4

在最小化形式下,Dojo 为 136kb,jQuery 为 96kb。搬到道场并没有朝着正确的方向发展。

您应该考虑的问题是:

  1. 图书馆是否适合您的目的
  2. 图书馆规模
  3. 它已经被预缓存的可能性
  4. 您对图书馆功能的熟悉程度
  5. 可在流行的公共 CDN 上使用
  6. 良好的网络支持和出色的文档
  7. 在可靠性、跨浏览器支持和定期更新方面享有盛誉

仔细检查每一个,除非您找到另一个在这些方面得分很高的库,否则 jQuery 可能是您最好的选择。它为您提供的功能出人意料地紧凑,而且它实际上没有很多您想要的东西列表中没有的东西。jQuery 在保持核心库专注于其中心任务方面做得非常好,让 UI 内容进入 jQueryUI,而大多数其他内容进入它们自己的插件库。

如果您热衷于优化您所包含的代码,使其只成为您需要的内容,那么您可能需要看看 YUI。它被设计为模块化,以便您可以仅指定您想要的模块,然后您可以预构建一块仅包含这些模块的代码(或者您可以动态加载您想要的模块)。我的感觉是,YUI 在这方面有些过度设计,对于快速项目来说使用它很麻烦,因为你必须花时间找出你需要哪些模块并每次生成该构建。一旦加载了一堆模块,它也不是那么紧凑,这就是您发现 jQuery 就其包含的内容而言令人惊讶的紧凑的地方。

一般来说,您不应该担心库中包含的但您没有使用的东西。只需查看确实满足您需求的库的总体规模和适用性即可。您可能会找到一个只做您想要的事情并且比 jQuery 更大并且没有广泛缓存的库,因此这不是一个胜利。

有一些紧凑的库仅用于 ajax 或仅用于 deferred,但您可能需要一个将 ajax 和 deferred 一起实现的库,这样您就可以将 deferred 与 ajax 一起使用(就像 jQuery 所做的那样)。进行广泛 DOM 操作的库往往不仅仅如此,因为它们更多地被设计为您的核心库,并且大多数人除了 DOM 操作之外还有其他需求。

最后,我建议您不要关心您的图书馆中有哪些您不需要的内容。只需评估它与替代方案的整体适用性。