BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

JavaScript框架的选择标准

| 作者 Alexander Olaru 关注 0 他的粉丝 ,译者 曹云飞 关注 0 他的粉丝 发布于 2007年12月10日. 估计阅读时间: 5 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

随着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
译者简介: 曹云飞,西安交通大学计算机软件硕士。现就职于Ethos,热衷于计算机理论与应用技术的钻研,软件架构与敏捷开发,目前从事consumer product方面的工作。参与InfoQ中文站内容建设,请邮件至china-editorial[at]infoq.com

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT