Posted on 2005-11-21 16:46
dlee 阅读(6230)
评论(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
热烈恭喜dlee开blog:)
# re: 对于WebWork Ajax支持的失望 回复 更多评论
2005-11-21 17:01 by
你是javaeye的那个dlee吧 嘿嘿
webwork的tag也可以用css装饰啊,例如template里面的css_xhtml 系列
你也可以自己写一套
当然ajax还是刚刚起步
# re: 对于 WebWork Ajax 支持的失望 回复 更多评论
2005-11-22 09:13 by
深有同感。不过我的观点在美感方面。前些日子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
试用了一段时间,确实是这种体会。
比如webwork有个tabbedpane tag,就是这种非常丑陋,服务器端生成js。
dojo自己带的那个tabbedpane,看起来和用起来就舒服多了。
# re: 对于 WebWork Ajax 支持的失望 回复 更多评论
2006-04-20 15:57 by
我刚接触AJAX不久,推荐个自己才使用不久的WebShop开发工具,自己感觉还不错,用起来方便,拖拖拉拉就好了,呵呵,希望和大家一起交流
# re: 对于 WebWork Ajax 支持的失望 回复 更多评论
2006-12-19 18:01 by
兄弟,做人要厚道:
1.人家愿意把自己做的东西拿出来分享这种精神你能做到吗?
2.如果能,你做得东西有人家好吗?
3.就算能,有人这种态度批评你的东西,你能忍受了?
不同意见可以提,但不是一味的批评和指责,给点你的高见,那才是交流,才是对人对己都有意;而不是“丑陋”这种措辞,那是对人的鄙视,你鄙视人家,还关注人家做得东西干吗呢?
做人要厚道嘛!
# re: 对于 WebWork Ajax 支持的失望 回复 更多评论
2007-05-23 17:07 by
做人要厚道
你可以不用他这部份的功能,完全可以用别的ajax框架加入!
# re: 对于 WebWork Ajax 支持的失望 回复 更多评论
2007-06-28 16:29 by
...路过
# 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的 哈哈哈!