InfoQ

新闻

选择你所需要的Ajax框架

作者 Scott Delap译者 Jason Lai 发布于 2007年5月6日 上午8时0分

社区
Java
主题
Web框架
标签
Dojo,
AJAX,
DWR,
Scriptaculous,
GWT,
原型

Dr. Dobbs网站最近刊登了一篇关于如何选择Ajax框架的案例分析,取自T. Rowe Price的一个开发团队。该团队评估了在他们的下一代应用中可选用的几个热门Ajax框架:

  • Dojo 0.3.1(dojotoolkit.org);
  • Prototype和Scriptaculous 1.4(www.prototypejs.org和script.aculo.us);
  • Direct Web Reporting 1.0(getahead.org/dwr);
  • Yahoo! User Interface Library 0.11.1(developer.yahoo.com/yui);
  • Google Web Toolkit 1.0(code.google.com/webtoolkit)。

经过最初考察之后,GWT就被从名单上剔除了,因为和团队原有的UI和后台开发人员分配不符,而且必须学习一套基于Java的新API。DWR也被排出在考虑范围之内,因为需要给T. Rowe Price使用的Websphere应用服务器打补丁。于是,接下来的考察对象就只剩下Prototype、Dojo和Yahoo UI了。

随后,文章比较了三个框架各自如何实现创建一个标签型Ajax Widget和一个带标题栏的动态“Hub”Widget。为了实现所需要的标签Widget功能,三个框架都需要进行一定的定制工作,但Dojo已经直接附带了最为接近的功能。随后,该团队又考察了加载时间:

……所使用的框架代码量级越小,性能衰减的可能性就越小。YUI完全压缩后的JavaScript文件需要22K,而Prototype是32K,明显比单独定制的Dojo JavaScript文件(220K)要小很多。这三个框架在高速网络连接的情况下性能都很不错;然而,YUI和Prototypes/Scriptaculous在56K的拨号上网连接下性能要高一些……

最后,开发团队考察了开发的总体难易程度。得出的结论是Dojo提供了更多的特性和Widget,但要进行定制难度就显得很比较大,因为需要更改的文件数量很多。最终,他们选择了Yahoo UI,原因是它的代码提供了详尽的文档,并且在Yahoo网站上还有详细的入门手册。

查看英文原文:Picking an Ajax Framework

9 条回复

回复

看法 发表人 df liu 发表于 2007年5月7日 上午2时9分
有点过时 发表人 z kj 发表于 2007年5月7日 上午2时36分
偶也比较喜欢DWR 发表人 kong xx 发表于 2007年5月7日 上午7时4分
结论太主观 发表人 lq you 发表于 2007年5月7日 下午9时0分
看法 发表人 sw pollux 发表于 2007年5月8日 上午4时0分
Re: 看法 发表人 Xiaogang Guo 发表于 2007年5月10日 下午2时8分
没有什么奇怪的 发表人 eamoi Ke 发表于 2007年5月10日 下午8时25分
jquery 发表人 benk chou 发表于 2007年10月4日 上午8时40分
回复:选择你所需要的Ajax框架 发表人 Ali Yang 发表于 2008年5月17日 下午10时23分
  1. 返回顶部

    看法

    2007年5月7日 上午2时9分 发表人 df liu

    dwr直接排除了,呵呵比较搞笑。其实,如果只是从界面上访问后台方法的话,dwr是比较简单的方式。如果要使用一些界面控件的话,dojo和yahooUI可以。不过dojo太复杂了,而且速度比较慢,如果你的html中有很多自己的javascript的话。

  2. 返回顶部

    有点过时

    2007年5月7日 上午2时36分 发表人 z kj

    有点过时!
    不是很客观!

  3. 返回顶部

    偶也比较喜欢DWR

    2007年5月7日 上午7时4分 发表人 kong xx

    偶也比较喜欢DWR

  4. 返回顶部

    结论太主观

    2007年5月7日 下午9时0分 发表人 lq you

    文章仅仅是针对作者的个人环境得出的对比结论,可以说总体上就不够客观
    引用:
    Because a custom patch was required to make it work with our environment, we decided that DWR wasn't a good fit.

    尤其是这个太搞笑了。

    另外,不同的AJAX框架实际上并不是一定要互斥使用,通过精心设计是可以协同使用的,比如DWR和YUI就可以一起工作得很好

  5. 返回顶部

    看法

    2007年5月8日 上午4时0分 发表人 sw pollux

    其实作者并没有说DWR不好,也没有否定GWT。只是他们认为要学习新的java API。
    YUI,我没有用过,在做项目的时候,曾使用过extjs1.0 beta。但最终选择了dojo0.42 rc。但dojo0.4的性能确实是一个比较严重的问题。但在页面中使用了大量的widgets的时候,cpu几乎都是100%。并且在处理html元素的时候,操作很不方便。现在dojo 0.9近在眼前。对widget有了比较大的翻新和改动。另外包的层次也有相应的调整。我相信在性能和可扩展性上都会有较大的提升。相信在1年之后会成为领头羊!特别是cometd的支持!
    prototype和jquery两者,我比较看好jquery。
    dwr发展很快,应该会在java项目中占一席之地!
    GWT估计1-2年内很难在国内有市场。毕竟目前国内没有项目会全部用ajax来构件web应用!

    上面只是自己的看法,欢迎讨论!

  6. 返回顶部

    Re: 看法

    2007年5月10日 下午2时8分 发表人 Xiaogang Guo

    如果全部用ajax来构建,还不如用Flex呢。

  7. 返回顶部

    没有什么奇怪的

    2007年5月10日 下午8时25分 发表人 eamoi Ke

    基于框架的选择,应该和项目的需求、团队的技术积累等因素相关。开发团队选择这样的结果没有什么奇怪。
    我关心的是,文章内容太短了,参考价值有限~

  8. 返回顶部

    jquery

    2007年10月4日 上午8时40分 发表人 benk chou

    我认为jQuery很值得一试.prototype也就一般般.

  9. 返回顶部

    回复:选择你所需要的Ajax框架

    2008年5月17日 下午10时23分 发表人 Ali Yang

    Direct Web Reporting 1.0 这是DWR吗?!

独家内容

专访开源项目Amoeba架构师陈思儒

DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。

使用JSF、Ajax和Seam开发Portlets(2/3)

作为三期系列文章的第二部分,本文延续了上一期内容,介绍了RichFaces,包括如何把RichFaces集成到之前提到的示例应用中、如何部署RichFaces porlet和RichFaces的多种特性和功能。

Jeff Barr谈论Amazon Web服务

Amazon Web Services(AWS)的传道者Jeff Barr讨论了SimpleDB、S3、EC2、SQS、云计算、Amazon的不同服务如何与应用交互、AWS的起源、SimpleDB和微软SQL Server Data Services、AWS cloud的全球化、三月份的AWS停机。

用Erlang实现领域特定语言

Erlang的并发模型很有名,它的健壮性也很有名。但其他方面呢?在这篇文章里,Dennis Byrne演示了如何用Erlang建立内部DSL。

基于Rails的企业级应用剖析

本视频主要以FreeWheel为例,对一个基于Rails的企业级应用进行了剖析。其中包括:FreeWheel的架构、部署、数据库的问题、REST API、敏捷开发过程、如何去写测试以及持续集成等等。

JavaFX技术预览

JavaFX显示了Sun的Java系列产品市场方向的一个重大转变。随着1.0版的即将发布,InfoQ以JavaFX预览版为参考,与Sun高级工程师Joshua Marinacci探讨了即将发布的1.0正式版。

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。