Fork me on GitHub

JavaScript框架的选择标准

随着AJAX技术日益广泛地被采用,许多开发者和架构师仍然在尝试甚至挣扎于应该采用什么样的最佳方式来评估JavaScript框架/库。Brian Raindel提供了一些意见 ,关于在选择框架的过程中应该考虑的各个方面,总结如下:

  • 项目需求。“这个Web 站点或者Web应用,是否需要AJAX,健壮的事件处理?是否需要特效库?”框架直接提供的功能的总量,以及使用框架需要的经验同样需要考虑。
  • 对浏览器的支持。虽然大多数框架能够支持大多数浏览器,“……但是通常会有不易察觉的例外——Mac操作系统上的Safari浏览器常有这样的陷阱”。
  • 开发团队对框架的支持力度。有一个核心开发团队来维护的框架是最好的。这样Bug报告和问题会有更快的响应速度,而且测试会更加严格,会更好地遵守开发指导方针。
  • 框架的成熟度。“框架的成熟度是最能说明其寿命的指标,同时也是框架的坚实基础。一个成熟的框架不会是beta版的……”一个兴旺的社区,以及提供Subversion或CVS代码库,也是成熟标志。
  • 公开更新和发布的频率。长时间的延迟和臃肿的发行版,都是你在将来得不到框架的有效支持的明确信号。反之,过多的公开版本意味着不稳定,或者项目不够专注。”
  • 文档质量文档是一个重要的区分指标。强健的文档包括API、书籍、教程和博客,而“只谈论句法的文档是最差劲的”。每个方法和属性的例子也是很有帮助的。
  • 存在一个活跃的社区“有经验的用户是愿意伸出援助之手还是打发你去其他地方寻找帮助?是否有开发者为框架开发扩展或者为核心框架作出贡献?”社区的个性也是判断社区是否可依靠的风向标。
  • 基准测试。基准测试可以帮助我们对于框架的性能方面得到概括的认识。基准测试还说明了框架采用了某些质量保证方面的最佳实践。另外,“……即使是速度上的略微提高,或者软件的尺寸缩小了,都可以视作一种正面的改进。”
  • 框架的可扩展性。“支持插件对于任何JavaScript框架来说都绝对是加分的,但是通常开发者仅仅想知道——在核心库中诊断问题所在有多困难?”
  • API 风格。“这是一个重要的问题,但是是个复杂的问题。对于大多数开发者来说,只有在很多项目中使用过几个JavaScript框架之后,才会对这个问题有所认识。简洁和连贯性(chainability)是两个非常重要的特征,不要忽视。”

在对该文章的一些评论中,有一些很好的意见可以作为选择JavaScript库的标准:

  • 是否有充分的功能测试和单元测试?—— Kanjax的评论
  • 该框架是否有商业化的支持?

有许多评论者肯定了JQuery,然而Ian认为在需要高性能的场景下,使用JQuery和prototype需要格外注意:

如果你的应用需要高性能,那么你要小心这些JavaScript框架。Prototype和jQuery在使用大的数据表和网格的时候会死的很难看。

我对我目前正在工作的项目做了大量的基准测试,该项目大量使用AJAX技术,并且用在项目核心的大数据表上。

我试验过jQuery和Prototype,它们的性能总是不行。问题在于document.getElementById()方法。DOM的查找操作是非常耗时的。实际上,我们的测试似乎表明DOM查找不是通过哈希来完成的。

许多框架会加入你通常用不上的扩展,这些扩展会降低性能。我们的解决方案是研究框架做了什么,然后我们自己编写代码,除去所有的扩展和任何无关紧要的框架支持。

但是对于没有大数据表的小型Web页面,Prototype或者jQuery工作得很好,而且易于使用。

其它评论者指出Mootools提供了一份对Protoype、JQuery和Mootools进行的基准测试

查看英文原文Selection Criteria for Javascript Frameworks

中文: http://www.infoq.com/cn/news/2007/12/choosing-javascript-frameworks

posted @ 2007-12-10 08:05  张善友  阅读(601)  评论(0编辑  收藏  举报