为什么jQuery如此广泛地被采用与其他Javascript框架?

我管理一群程序员。 我非常重视员工的意见,但最近我们对于在网络项目中使用哪种框架感到分歧。

我个人喜欢MooTools ,但我的一些团队似乎想迁移到jQuery,因为它被更广泛地采用。 这本身不足以让我进行移民。

我用过jQueryMooTools 。 这篇特别的文章倾向于反映我对这两个框架的感受。 jQuery非常适合DOM操作,但似乎仅限于帮助您实现这一点。

特性明智的是, jQueryMooTools都支持简单的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');

jQueryMooTools都可以轻松实现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');

jQueryMooTools都支持简单的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集成
  • 由微软,谷歌和其他人使用
  • MooTools提供以下额外功能:

  • 面向对象的框架与经典的面向JS的OOP仿真
  • 扩展的本地对象
  • 本机功能支持浏览器之间更高的一致性。
  • 更简单的代码重用
  • 由万维网联盟,Palm和其他公司使用。
  • 鉴于此,似乎MooTools完成了jQuery所做的所有工作(我在jQuery中无法完成的一些事情,而且我可以在MooTools中完成 ),但jQuery的学习曲线较小。

    所以问题是,你或你的团队为什么选择jQuery而不是另一个JavaScript框架?

    注意:虽然我知道并承认jQuery是一个很好的框架,但还有其他选择,我试图做出决定,为什么jQuery应该成为我们的选择,而不是我们现在使用的( MooTools )?


    这是一个奇怪的问题......我得到的印象是......

  • 您非常熟悉mootools并充分利用其OOP模型,使您的代码更容易管理和支持。
  • 你意识到jQuery的目的有点不同,并且针对DOM操作和AJAX进行了调整,并且mootools确实执行了jQuery所做的一切,然后执行一些操作。
  • 听起来就好像你不需要太多地使用第三方插件一样,这使得jQuery的流行和支持的重点不那么重要。
  • 底线,这是炒作吗? jQuery正在变成这些神奇的营销流行语之一,比如'AJAX',.NET和Web 2.0 - 这对他们来说很好,但为什么你需要证明你仍然适合适合你的框架? 还有我想象中的商业考虑因素将包括如下内容:

  • 框架的寿命,还是mootools可能会在不断增长的jQuery面前消失 - 非常值得怀疑,因为他们刚刚发布了1.3 beta 1,并且在今年年底发布了2.0版本的管道。
  • 工作人员的费用和他们的培训(我想,找到mootools程序员会比在他们的简历/简历上拍jquery更困难)。
  • 用于在给定资源的情况下在每个框架下维护和扩展您的系统的时间(和成本)。
  • 这两个框架都非常棒,但我相信你的兴趣最好是留在mootools中。


    就个人而言,jQuery正是我所需要的。

    我尝试在我的服务器端代码中完成大部分工作,这些代码结构良好:它具有适当的OOP,图层和MVC体系结构。 当我需要用JavaScript做些事时,我发现(到目前为止)jQuery拥有我需要的东西。 坦率地说,这分为三类:

  • 简单的DOM操作 ,通常显示/隐藏的东西,而不击中服务器。
  • 阿贾克斯呼吁 ,nuff说。
  • UI津贴 ,包括模式弹出窗口,动画,淡入淡出到/隐藏/显示。 我是一名硬核后端编码人员,我吮吸UI的东西。 我非常喜欢jQuery让我以编程方式制作看起来很有吸引力的东西。
  • 最重要的是,jQuery插件库非常庞大,我发现了很多库来简化我的客户端工作。 好东西。

    MooTools引入了OO思想,这很好,但不是我所需要的。 我希望在后台保持我的结构性,而不必将这种想法引入我的客户端代码。 对我来说,客户端代码是一个非常小的重点,并且从类视角来考虑它是一种过度的方式,而且更多的工作方式。 我觉得如果我使用我认为对MooToools来说最好的做法,我会建立两个应用程序而不是一个应用程序。

    我认为这总结了为什么它如此受欢迎,特别是在这里。 总的来说,我们是后端代码-y类型的人,jQuery让我们以编程方式制作吸引人的用户界面,并让我们专注于后端核心。


    我不喜欢将经典的对象方向强加到JavaScript上。 有很多方法可以做到这一点,一个JavaScript程序员可能使用Base2进行面向对象,而另一个使用Prototype或Moo或JS.Class或Joose。 Resig故意决定不向jQuery添加类,并且鼓励人们找到更多原生的JavaScript方法来解决问题。

    因此,我更容易阅读JavaScript其他jQuery编写者编写的代码,并编写易于其他人阅读的jQuery代码。 我通常不会尝试在JavaScript中模拟类OOP。 相反,我在飞行中创建对象并传递它们,并且我有很多对象数组。 这很容易理解,我甚至发现自己将这种想法带到OOP语言!

    据我所知,Moo可能已经赶上了jQuery或者超越了它。 但是我不能把时间花在跟踪6,7个伟大的JavaScript库上,看看哪个马前进。

    我认为这主要是时间问题。 当大量程序员跳入AJAX时,jQuery是解决他们问题的热门新酷事物。

    其他图书馆很大程度上赶上了。 YUI,ExtJS,Dojo,Moo--他们都很棒。 但我无法全部使用它们。

    我努力工作,努力弄清楚我使用的图书馆的新功能的后果。 例如,jQuery从1.3开始添加了Live events。 这实际上让我从很多页面切割代码。 Moo现在也提供这种服务吗?如果它发生了,我该怎么知道它发生了?

    我确定Moo真棒。 我很乐意有时间学习它。 但是你看过Dojo吗? 我不得不在一个项目中使用它,并发现它也从jQuery中获得了绝大多数的好点子。 它有pubsub和对Comet的很好的支持。

    我很同情你。 但是你的程序员说话有道理。 学习jQuery对他们的职业生涯非常有利,如果他们使用jQuery,还有更多书籍,示例和其他程序员可以寻求帮助。

    如果您决定继续使用jQuery,那么在决定是否使用OO库之前应该先仔细考虑。 有一些很酷的(比如JS.Class或Joose),但是采取这一步意味着将自己与绝大多数JavaScript程序员的代码隔离开来。

    链接地址: http://www.djcxy.com/p/94011.html

    上一篇: Why is jQuery so widely adopted versus other Javascript frameworks?

    下一篇: increase efficiency of large