这篇文章主要针对对创建大型就用程序感兴趣的jQuery用户。通常当你讨论可以用于开发大规模JavaScript应用程序的方案时,你可能想知道像dojo这样的工具是不是比用jQuery更合适一些。当然还有其它的选择,但是本文只特别关注dojo,并对其作全面的评测。我将从关注尽量高的层面以避免过于细节特征的对比。
很重要的一点是你不要犯了常见的错误,仅仅因为jQuery是你所知道最好的而认为它就是你应该总是使用的,这是不对的。现实的是“你要使用的”完全依赖于你的项目要解决的问题以及你当前的技术水平。
如果你的项目主要需要一定程度上的DOM操作,容易访问Ajax(dojo和jQuery都支持deferrers),动画效果,钩子或事件,jQuery就是你的最佳选择。它非常流行,所以如果你的公司开发团队需要招聘的话,你可能会发现懂得jQuery的人比研究dojo的人多。dojo开发者(一般地来说)更有经验处理大规模项目中包含的重大挑战,并且(我认为)更容易掌握jQuery相比jQuery用户要掌握dojo来说,虽然这还存在争论。
然而值得一提的是jQuery是一个类库,而dojo更多的是一个加强的,企业级的工具,所以理应当有更多的东西可以学。dojo提供了更好的OOP(以及其它代码组织模式),自定义模块,国际化,组件类,网格,图表的解决方案,它可以运行在非浏览器环境并且与其它框架(如Zend)集成,而且当你开发特别复杂的Web应用程序时它会更加合适。
我想说的是jQuery有稍微好一点的可用的文档,并且除非你已经使用JS很长时间了,当你第一次接触dojo时,你应该会经历一个稍微高一点的学习曲线当你。这是一个你会发现专业训练很有用的领域,而在那里有很多dojo开发者正在研究如何以自己的方式使用它。
我想如果你了解正确组织客户端JavaScript代码的需求,曾经适当地构建并在适当的时候依赖管理工具,你可能很容易使用上面的任何一种选择,但是重要的是你要始终记住总有一个时候使用jQuery对于你大规模的开发不再有效,这时就选择dojo代替吧。
我不主张如果你现在使用jQuery而要放弃它直接使用dojo,而是希望你在开始一个大型项目前对使用其中任何一个进行应有的调研。
正如我在JavaScipt社区的同伴们以前指出过的,这不仅可以节省你的时间,还可以节省很大的资金投入,所以在你开发任何一个非常重大的项目前确保评估了每一种方案。
希望这是一个平衡的观点,既可以得到jQuery阵营的赞同,也可以得到dojo阵营的支持。我也很希望听到任何在这方面不同的意见,因为我知道在任何一方都有非常强烈的想法。
