Posted on 2005-11-21 16:46
dlee 閱讀(6246)
評論(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的 哈哈哈!