五月天山雪

五月天山雪,无花只有寒。笛中闻折柳,春色未曾看。晓战随金鼓,宵眠抱玉鞍。愿将腰下剑,直为斩楼兰。 ——李白《塞下曲》
posts - 8, comments - 53, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

对于 WebWork Ajax 支持的失望

Posted on 2005-11-21 16:46 dlee 阅读(6234) 评论(10)  编辑  收藏 所属分类: 软件工艺
看完了 WebWork 支持 Ajax 的 presentation
(http://wiki.opensymphony.com/download/attachments/2179/AJAX.ppt),感觉相当的失望。
WebWork 对于 Ajax 的支持主要是通过引入新的 tag 来实现的。但是根据目前的文档看来,这几个 tag 的能力还相当有限。这些 tag 能做几件事情:
1、动态刷新页面中的某一部分。这一部分封装在一个 div 中,通过轮循方式或者事件触发的方式来改变其内容。理论上可以在 div 内放入任何内容。
2、通过一个 a 超链接或 submit 按钮来执行一段 JavaScript,并且可以触发一个事件。事件模型是由 DOJO 库来定义的。
3、可以生成 tabbed pane,使用 tab 切换不同的内容,也可以在切换的同时触发一个事件。
4、还有一个 tree 控件,同样使用 WebWork 新增的 tag 来生成和配置。

目前看来基本上只能做这几件事情。如果要做更复杂的事情,只能自己编写 JS 代码调用 DOJO 或者第三方库的功能。这几件事情都是相当容易的 Ajax 技巧,没有一件是必须要使用 tag 这样丑陋的方式来实现的。我们来看看 WebWork 作者的一段实例代码:
<#list categories as cat>
  <#if cat.children.size > 0>
    <#assign icon="plus"/>
  <#else>
    <#assign icon="square"/>
  </#if>
  <@ww.a notifyTopics="children_${cat.id}"
         href="toggle.action?id=${cat.id}">
    <img src="${icon}.gif"/>
  </@ww.a>
  [EXAMPLE CONTINUED]
</#list>
这是 WebWork 支持的一个 tree 控件的一部分代码。
在我看来这段代码实在是难看的要死。本来我要把页面中的逻辑,就是 behaviour 分离到独立的 js 文件中的,现在又多了这么一堆服务器端的逻辑!我就是很讨厌在 html 里面嵌入一大堆逻辑,无论是服务器端执行的还是浏览器端执行的。html 里面应该只有 structure!

WebWork 使用的 Dojo 库目前还缺少很重要的一块——对于 DataGrid 的支持。DataGrid 是 B/S 架构企业应用表示层的核心组件,也差不多是开发量最大的组件。没有对于 DataGrid 的支持,怎么看都像是个玩具。目前已经有开源的 ActiveGrid(http://www.activegrid.com)可以做这件事情,如果熟悉 JavaScript 的话可以直接调用。
还有一个问题,WebWork 的 tag 生成的代码中含有大量的 table,如果想用 CSS 做布局,看来是不太可能了。
怎么样?看上去很美,Java 程序员不需要学习任何 JavaScript,全部使用 tag 就可以达到 Ajax 的效果。问题就是这个目标是否真的现实。况且,还有大量根本就不喜欢使用 tag 的 Java 程序员呢?

评论

# re: 对于WebWork Ajax支持的失望  回复  更多评论   

2005-11-21 16:56 by calvin
热烈恭喜dlee开blog:)

# re: 对于WebWork Ajax支持的失望  回复  更多评论   

2005-11-21 17:01 by scud(飞云小侠)
你是javaeye的那个dlee吧 嘿嘿

webwork的tag也可以用css装饰啊,例如template里面的css_xhtml 系列

你也可以自己写一套

当然ajax还是刚刚起步

# re: 对于 WebWork Ajax 支持的失望  回复  更多评论   

2005-11-22 09:13 by Michael Chen
深有同感。不过我的观点在美感方面。前些日子scud在BJUG的聚会上做了一个关于Webwork2.2的topic,其中谈到webwork的ajax的支持。在我看来,那些remoteDiv, a, form的ajax标签,使用起来实在是丑陋不堪。当时跟冰云说,webwork现在的team leader一定不是 Richard Oberg了,否则他怎么能容忍这么丑陋的设计呢

# re: 对于 WebWork Ajax 支持的失望  回复  更多评论   

2005-12-02 13:07 by darren
试用了一段时间,确实是这种体会。
比如webwork有个tabbedpane tag,就是这种非常丑陋,服务器端生成js。
dojo自己带的那个tabbedpane,看起来和用起来就舒服多了。

# re: 对于 WebWork Ajax 支持的失望  回复  更多评论   

2006-04-20 15:57 by AJAX爱好者
我刚接触AJAX不久,推荐个自己才使用不久的WebShop开发工具,自己感觉还不错,用起来方便,拖拖拉拉就好了,呵呵,希望和大家一起交流

# re: 对于 WebWork Ajax 支持的失望  回复  更多评论   

2006-12-19 18:01 by 老汤
兄弟,做人要厚道:

1.人家愿意把自己做的东西拿出来分享这种精神你能做到吗?
2.如果能,你做得东西有人家好吗?
3.就算能,有人这种态度批评你的东西,你能忍受了?

不同意见可以提,但不是一味的批评和指责,给点你的高见,那才是交流,才是对人对己都有意;而不是“丑陋”这种措辞,那是对人的鄙视,你鄙视人家,还关注人家做得东西干吗呢?

做人要厚道嘛!

# re: 对于 WebWork Ajax 支持的失望  回复  更多评论   

2007-05-23 17:07 by 742
做人要厚道

你可以不用他这部份的功能,完全可以用别的ajax框架加入!

# re: 对于 WebWork Ajax 支持的失望  回复  更多评论   

2007-06-28 16:29 by Custer
...路过

# re: 对于 WebWork Ajax 支持的失望  回复  更多评论   

2007-12-29 14:36 by 三平
的确,做人要厚道.

# re: 对于 WebWork Ajax 支持的失望  回复  更多评论   

2008-02-11 17:12 by 小小陈
前一阵子 用了ajax 感觉上 有些地方 用它确实不错 但是我总觉得用ajax那个页面里面的 js呀 多的可怕

而且 ajax 前到后 后到前 都需要进行xml的转换 我真的不知道 这样做真的是不是就好! 总觉得当数据量很大的时候 对数据的xml打包和解析 难道不也是要消耗很多的资源吗?

所以 ajax我保持继续观望的态度!!!

说一句 ,我是一个不喜欢用tag的 哈哈哈!

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问