7

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


对于我从事的大多数 JavaScript 项目,我想要一个简单、轻量级的 UI 堆栈。

目前我在我的项目中使用 jQuery,但是当我真正退后一步查看代码时,我只是将它用于:

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

Dojo 浮现在脑海中,但到目前为止我还没有这方面的经验,理想情况下希望听到那些在这方面使用过多个库的人的意见。

4

2 回答 2

5

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

于 2012-04-06T16:33:15.690 回答
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 操作之外还有其他需求。

最后,我建议你不要关心你的图书馆里有什么你不需要的东西。只需评估它与替代方案的整体适用性。

于 2012-04-06T15:51:13.633 回答