InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Grails Ajax富客户端插件大比拼

作者 胡键 发布于 2009年3月19日

领域
架构 & 设计,
企业架构,
语言 & 开发
主题
动态语言 ,
富客户端/桌面 ,
Java ,
Web 2.0 ,
RIA
标签
Grails ,
Groovy

软件要想成功,必须要有一个能支撑它走下去的良好生态环境。凭借其插件架构,Grails已经为自己的发展打下了良好的基础。看着不断增长的Grails插件列表,不难想象Grails将来的发展。不断增长的插件也让开发者有了可以选择的机会,尤其是在面对那些作用相同或相近的插件时,这种情况尤其突出。在这样的情况下,一个很自然的问题就是“它们中哪个是最好的?”

最近,Dean Del Ponte就撰文对4个Grails的Ajax富客户端插件进行了对比,并给出了自己的评判。对于那些重量级的富客户解决方案,如Flex或JavaFX,作者自称并未考虑。Dean Del Ponte首先对这4个插件的优缺点进行了对比:

Prototype/Scriptaculous

  • 优点
    • 缺省包含在Grails中
    • 流行的框架,拥有API文档并可在线获得帮助
    • Prototype的核心功能比较容易上手;注意,Scriptaculous的学习曲线比Prototype更短。
    • 良好的社区支持。有许多免费的第三方组件。
  • 缺点
    • 除了API,文档不详细且难以找到
    • 不再是“带头大哥”。常常扮演其他框架的追随者。
    • 学习曲线比其他框架要陡得多

GrailsUI插件

  • 优点
    • 集成了支持10个YUI组件的GSP标签
    • GrailsUI插件wiki页面和YUI主页都有详尽的文档。
    • SpringSource开发人员的参与
  • 缺点
    • 没有给所有YUI组件提供GSP标签实现
    • 对于那些有GSP标签的YUI组件,又不支持全部特性(如,数据表格的单元格内的编辑)
    • 可用的第三方YUI组件有限

RichUI插件

  • 优点
    • 提供了21种富客户端组件的实现
    • 大量的GSP标签集成
    • 文档化做得不错
  • 缺点
    • 包含了多个底层JavaScript框架,有和其他插件冲突的可能

jQuery

  • 优点
    • 详尽的文档,并带有例程
    • 大型社区
    • 大型的组件库,其数量是现有JavaScript框架中最多的
    • 从项目网站可以访问大量的组件(jQuery称它们是插件)
    • 简单、易用的语法
  • 缺点
    • 除了Grails缺省的标签,没有提供其他GSP标签的集成
    • 要求大致了解jQuery API、语法和JavaScript才能有效地使用

回到我们最初的那个问题:“它们中哪个最好?”,作者的回答却是相当圆滑:“取决于你的需要”。各位也不必太过在意,因为这种事情本来也是“萝卜白菜各有所爱”。当然,作者还是给出了他的最爱:RichUI插件。

文末,作者给出了他自己对于这4个插件的综合评级:

  1. RichUI
    易用,而且和GSP标签集成得不错。不需要JavaScript的知识。对于Grails的新手和老手都一视同仁。
  2. GrailsUI
    不象RichUI插件那样容易使用,但是文档很好,而且提供了一些不错的组件和良好的GSP标签集成。
  3. jQuery
    如果你对JavaScript没什么不适应并想学习jQuery,你就可以去使用它。它的使用并没有什么限制,对于那些对没有被JavaScript吓倒的开发者,我强烈地推荐它。
  4. Prototype/Scriptaculous
    要是你不想或不能在你的项目中包含其他框架,就用它吧。它不象jQuery那样好用,但它有大型的社区,而且文档也能找到。

在该文的评论部分,有读者提到了为何没有涉及Grails的ZK 插件。显然,这篇文章并没有涉及所有的Grails Ajax插件,但它确实包含了Grails插件中目前最流行的几个Ajax插件。

请问你还有什么补充吗?你的最爱又是什么?关于InfoQ中文站Grails的其他内容,请访问这里

胡键 热心开源技术,《开源技术选型手册》作者,《SOA实践指南》译者。目前致力于Groovy/Grails的研究和推广。

不推荐基于Grails的插件来使用Ajax 发表人 果 林 发表于
Re: 不推荐基于Grails的插件来使用Ajax 发表人 胡 键 发表于
zk太重量了 发表人 Xie Fengbo 发表于
  1. 返回顶部

    不推荐基于Grails的插件来使用Ajax

    发表人 果 林

    在Grails上使用Ajax不外乎2种用法:

    1.使用Grails提供的Ajax插件.
    不论使用那个Ajax插件, 他能提供给GSP使用的标签都是非常少的, 除非你愿意自己写Tag.
    插件使用的都是老版本的lib. 总不能为了使用GSP标签,而等插件升版本来支持新版本的lib吧. 当然, 你自己写标签是另外一回事.
    JS还是需要写,只是由于GSP标签的存在确实少了一些JS的代码.

    2.传统用法.
    就是传统用法了.

    我个人推荐用传统用法. 毕竟, Ajax在jsp的使用应该比较熟悉了, 该写JS, 继续写JS.

  2. 返回顶部

    Re: 不推荐基于Grails的插件来使用Ajax

    发表人 胡 键

    我觉得没有必要分得这么绝对。我同意单纯使用标签是不够的,需要在一定程度上了解JS,而且这似乎已经成为开发Web应用的必备知识了。但是,如果有好的插件,也没有必要去排斥。我觉得插件至少起到了将项目的知识进行固化,以备下次复用,减少重复劳动的目的。你说的版本问题的确是存在,但是这个问题是个普遍问题,现在无论谁的项目中所使用的开源框架肯定都会用到一些lib,也不见得非得因为主框架升级了就马上进行迁移。而且,随着Grails生态环境的成熟,必然也会出现一些以主框架为核心,包含不同插件的版本。看看Eclipse的WTP,不就是如此么。而且,我个人认为groovy社区的生态系统建设还是搞得很好的。早前groovy社区就表示,groovy 1.6发布时,也会保证和grails的兼容性。这种联动发布是其他开源社区很少见到的。
    罗罗嗦嗦说了一大堆,总而言之就是“什么合适用什么,怎么顺手怎么来”,办法不是只有一种,没有必要非此即彼。呵呵

  3. 返回顶部

    zk太重量了

    发表人 Xie Fengbo

    不提也没什么。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。