我正在寻找一个轻量级的 JavaScript 框架,其主要目的是抽象出浏览器的差异。我主要使用它来创建新的 UI 元素,除了可以为我提供独立于平台的语言和 DOM 的东西之外,我不需要太多东西。
29 回答
我使用 jQuery - 它既简单又小巧,最重要的是:非常简单 :)
mooTools也是我的最爱。他们的界面让您可以随心所欲地使用,因此,如果您想在您的工具包中添加更多技巧,这很容易做到。
我是雅虎的忠实粉丝!用户界面 (YUI)库。它有一套很好的 DOM 操作工具,以及一个非常可靠的小部件框架。另外,您可以混合搭配您想要使用的东西。
尝试DOMAssistant。它压缩后只有 7 KB,速度非常快,并且支持 Unicode。
我更喜欢 JQuery。它也有很好的文档。jQuery
我也喜欢jQuery,因为它具有强大的选择器功能“$”,并希望提供指向替代文档的链接:Visual jQuery
这是一个比较图表,我用来帮助评估那里的一些不同的库。
它绝不会列出每个库的所有功能,而是为您提供一个很好的概述,以缩小您应该进一步挖掘哪些框架的选择范围,看看它是否满足您的需求。
就个人而言,当我在做客户端工作时,我爱上了 15k 版本的 JQuery。有一个轻微的学习曲线,但它非常非常光滑。
您可以打包任何 JavaScript 代码以使其更轻量级,所以问题可能归结为您更喜欢哪个?我选择Prototype - 有一个名为 protopacked 的可用版本,我认为它的大小约为 20 KB。
MooTools 很火。这些天它变得有点大了(基数是 60 KB),所以这可能超出你的能力范围。
但是如果你真的只是在追求基本的 DOM,那么 jQuery 可能是理想的。
在这里再次为 jQuery 投票。快速、轻便,而且你学得越多,你的代码就会越快、越简洁。
jQuery 非常流畅并且非常容易学习。我过去曾使用 Moo 进行一些基本的 DOM 操作。它占用的空间更少,但功能更少。您的最佳选择绝对取决于您的要求。
基本的 YUI 代码 -- yahoo-dom-event.js -- 是 31KB 并且运行良好。您可以获得各种不错的事件处理和DOM 操作,并且在您需要时很容易添加更复杂(更重)的东西。
只是一个建议,但我会在合理的范围内寻找一个具有您想要的功能并且不必太担心大小的框架。大多数现代框架,如 PrototypeJS 或 JQuery 并没有那么大,并且具有最小化的版本(删除了空格等)。此外,您应该将您的站点配置为缓存这些库。用户需要下载该库的唯一时间是第一次访问,或者清除浏览器缓存后的任何访问。
命名库文件时,请确保使用唯一的文件名。例如,根据库的版本命名您的库。当您需要升级到新版本的库时,只需从相关页面中引用新的文件名(版本)即可。这将允许您在没有短期到期日期的情况下缓存这些文件。
您可以使用许多其他缓存技术来绕过库文件大小并提高性能。我推荐“高性能网站”,ISBN:0596529309。虽然书中的所有信息都可以在网上找到,但这本书很好地在一个地方收集了你需要的信息,并将各种概念结合在一起(我有对本书没有经济利益)。
无论您选择什么,都可以考虑让 Google 为您托管:
这个问题真的是这个问题的重复(我认为)。我对这个问题的回答如下(也适用于这里):
你会在这里得到一百万个答案。简短的是:有几个,而不是一个。它们在某些方面都不同,而在其他方面则相似,而且总的来说,它们都不是糟糕的选择。我推荐的主要框架是(按字母顺序,以免显示任何偏见):
* Dojo
* jQuery
* MooTools
* Prototype (with Scriptaculous)
* YUI
* MochiKit
它们中的每一个都有不同的风格、不同的社区和不同的侧重点。您应该选择哪一个主要取决于将这些框架的风格与您自己的风格相匹配。花一些时间阅读每个教程和演示,然后选择对您最有意义的一个。
作为免责声明,我将指出我是 MooTools 的开发人员,并写了一本关于如何使用它的书。我不会说 MooTools 比其他任何框架都好。只有不同。
我推荐MooTools :-)
var theDiv = new Element('div', {
'id': 'theDiv',
'styles': {
'backgroundColor': '#BF1942',
'color': '#fff'
}
}).toggleClass('someClass').inject($('someSibling', 'after');
我真的很喜欢它的代码的可读性。
我已经推出自己的多年,但与其他人一起玩时远离dojo + jquery。关于 mootools(我见过的最好的 js ani)+ gui 或 yui 工具包的组合,我无话可说
我同意 JQuery 是轻量级、可扩展、强大的选项。我的公司目前正在使用 Extjs,它对于我们正在做的事情来说是庞大且复杂的。如果您需要创建一个没有设计师参与的快速网站(它带有用于创建您需要的任何东西的所有图形和样式),Extjs 非常棒,但它大约 6MB 并且最终使简单的任务变得更加繁琐:)
如果我可以全部完成,这可能会发生,我会使用 JQuery。
midori是一个轻量级的 JavaScript 框架(只有 45K 未压缩)。它支持大多数 CSS2 和 CSS3 选择器来访问 DOM 元素,并且不需要您学习全新的 API。除了标准的 DOM、事件和 Ajax 功能之外,它还支持基本的视觉效果、拖放、弹出菜单和自动完成等功能。
jQuery 非常好。
如果我们可以将我们的框架添加到此处建议的框架列表中,并允许其他人对他们最喜欢或使用的框架进行投票 - 即动态投票/调查,那将是非常酷的。
YUI 对于我的口味来说太大太复杂了。我曾经是一个 Prototype fanboi,但当我开始在新项目中使用 jQuery 时,它对我来说失去了光彩。我喜欢 jQuery 的地方在于一致的心智模型:找到一些东西,然后采取行动。
我非常喜欢 jQuery,因此我构建了一个 Dashboard 小部件用于离线访问文档:jQuery Reference Widget
如果您正在做一些小改进,jQuery 是您的最佳选择,因为它是使用最广泛的框架,并且您会从其他用户那里获得大量反馈。但是,我自己不是 jQuery 用户,因为我已经使用Ext开发 RIA 。因此,我使用 Ext-core(Ext 的一个子集),因为该框架具有更好的 OO 设计,并且它提供了与 jQuery 相同的基本功能(事件处理、DOM 操作、Ajax)。
http://www.extjs.com/products/core/
我从未使用过 Prototype,因为它们会增加Object.prototype
导致我们代码中的错误。