【发布时间】:2010-11-02 16:03:21
【问题描述】:
我管理着一组程序员。我确实重视员工的意见,但最近我们对于在 Web 项目中使用哪个框架存在分歧。
我个人喜欢 MooTools,但我的一些团队似乎希望迁移到 jQuery,因为它被更广泛地采用。这本身不足以让我允许迁移。
我同时使用了 jQuery 和 MooTools。 This particular essay 倾向于反映我对这两个框架的感受。 jQuery 非常适合 DOM 操作,但似乎仅限于帮助您做到这一点。
在功能方面,jQuery 和 MooTools 都可以轻松实现 DOM 选择和操作:
// jQuery
$('#someContainer div[class~=dialog]')
.css('border', '2px solid red')
.addClass('critical');
// MooTools
$('#someContainer div[class~=dialog]')
.setStyle('border', '2px solid red')
.addClass('critical');
jQuery 和 MooTools 都可以轻松实现 AJAX:
// jQuery
$('#someContainer div[class~=dialog]')
.load('/DialogContent.html');
// MooTools (Using shorthand notation, you can also use Request.HTML)
$('#someContainer div[class~=dialog]')
.load('/DialogContent.html');
jQuery 和 MooTools 都可以轻松实现 DOM 动画:
// jQuery
$('#someContainer div[class~=dialog]')
.animate({opacity: 1}, 500);
// MooTools (Using shorthand notation, you can also use Fx.Tween).
$('#someContainer div[class~=dialog]')
.set('tween', {duration: 500})
.tween('opacity', 1);
jQuery 提供以下附加功能:
- 庞大的支持者社区
- 插件库
- 与微软的 ASP.NET 和 VisualStudio 集成
- 由 Microsoft、Google 和其他公司使用
MooTools 提供以下附加功能:
- 面向对象的框架,带有经典的 JS OOP 仿真
- 扩展的原生对象
- 本机功能支持的浏览器之间具有更高的一致性。
- 更轻松的代码重用
- 被万维网联盟、Palm 等使用。
鉴于此,似乎 MooTools 做了所有 jQuery 做的事情,甚至更多(有些事情我在 jQuery 做不到> 我可以使用 MooTools),但 jQuery 的学习曲线较短。
所以问题是,您或您的团队为什么选择 jQuery 而不是另一个 JavaScript 框架?
注意:虽然我知道并承认 jQuery 是一个很棒的框架,但还有其他选择,我正在尝试决定为什么 jQuery 应该是我们的选择,而不是我们现在使用的 (MooTools)?
【问题讨论】:
-
选择器,链接,插件,兼容其他JS库,易于编写自己的插件和选择器,标准。我敢打赌,你可以非常快地为 jQuery 编写 OOP 插件。我希望每个人都转向 jQuery,因为它的插件比别人复杂的 JS 代码更容易使用。
-
@Andrew Moore:我相信,以不那么固执己见的方式提出问题会减少负面的直觉反应。例如,您可以列出一些您在 MooTools 中轻松完成的事情以及如何在 jQuery 中解决它们。
-
有人请重新打开这篇文章。从这些讨论中可以学到很多东西。这种追尾的事情已经走得太远了
-
@01:实际上,一个被广泛接受的想法是,在一个生态系统中单独使用一个平台和/或框架是一件坏事,在安全和进步方面都是一件坏事。如果一个竞争对手占据了多数,那么生态系统就不会发展[这就是为什么我们有像 IE6 这样的怪物长期主导市场的原因]。
-
@Andrew Moore。不过,jQuery 的绝对数量优势在于它可以应对新的浏览器。当浏览器升级(以及新手机的新移动浏览器出现)时,它们将针对比 Moo 页面更多的 jQuery 页面进行测试。如果 jQuery 是大多数页面使用的“标准”,那么浏览器将不得不遵循它而不是相反。
标签: javascript jquery frameworks mootools