<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    appfuse+qooxdoo+JSON-RPC-JAVA

    ??? 我在學習appfuse的時候感覺里面的內容還是有些多了,對于我們的項目需求和開發人員的工作經驗都顯得內容過多,所以我做了一些簡化,同時也作了一些修改與擴展,其中最主要的是將DWR換為了JSON-RPC-JAVA,界面開發采用了qooxdoo。經過這些簡化和擴展現在新同事對技術框架的學習速度非常快,除了qooxdoo外其他部分有一點hibernate基礎的同事一天就可以掌握,這種效果我認為spring占據了最主要的功勞。

    ? 我現在開發的兩個項目都是使用qooxdoo做界面開發,也曾經打算過使用dojo,但學習的過程發現qooxdoo由于和java swing的類似性,上手更快,解決難題的速度也更快,所以后來就確定下來使用qooxdoo來作為界面開發了。而且就默認的樣式來講,qooxdoo也比dojo漂亮多了。
    ? 對于RPC,本來我是使用的DWR,但現在改用JSON-RPC-JAVA了,不同的是這個JSON-RPC-JAVA我做了較大的改動,因為原來的JSON-RPC-JAVA遠不如DWR好用。但現在在當前項目中,基本沒有學習的難度和使用的難度。
    ??? 今天沒時間仔細寫這篇文章了,先放在這里幾個圖片,給大家一個直觀的了解,后面我會把我們對qooxdoo的使用心得,放在文章區。

    這是我給其他同事寫的qooxdoo的ListView以及drag&drop的演示。兩個ListView之間可以相互拖動條目,可以拖動某些條目到垃圾箱,進行刪除。右下角是log區。(這里使用的是firefox)


    這是項目的主界面(使用的是IE)

    這是一個包含基本的CRUD操作的簡單界面,其中權限是使用的Combox

    posted on 2006-07-23 14:44 一農 閱讀(8331) 評論(58)  編輯  收藏

    評論

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-24 11:11 胡子魚

    不知老兄選JSON-RPC-JAVA而不選DWR的理由是什么?  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-24 13:44 一農

    我需要對DWR來做一些改動來適應我自己的需要,但在我看懂DWR之前我看懂了JSON-RPC-JAVA(幾眼就看懂了),而且能滿足我的需要所以我就改造JSON-RPC-JAVA了,現在仍然使用JSON-RPC-JAVA的原因是JSON-RPC-JAVA是基于JSON-RPC的,而DWR的協議更私有一些。另外因為我使用了qooxdoo,DWR的一些js代碼顯的多余了,雞肋一般。等我把JSON-RPC-JAVA再做些改動,吸收DWR的一些優點,從我的項目中抽取出來之后我會將代碼公開出來。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-24 14:28 原創專欄 開源學習

    我覺得我們更應該把精力放到業務上.
    不應該放到修改框架的bug上面.

    ajax,ui框架太容易讓我們有修改的欲望了.  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-24 15:21 一農

    @原創專欄 開源學習
    我修改的目的就是為了讓其他同事能將精力都放在業務上,而不是技術上。

    “ajax,ui框架太容易讓我們有修改的欲望了. ”我做編碼有幾年了,被震撼了幾次以后,對自己使用的框架的修改欲望完全都是來源于項目的需要,特別是對今后可能升級的框架,一般不和原始作者溝通,我是不會做修改的。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-24 16:32 小弟

    頂  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-29 16:36 福星高照

    qooxdoo的listview能像表格一樣每個單元格都有邊框嗎?
    他的例子里面是找不到的,調試了半天listview的各項屬性和函數都不成,因為國內很多地方都要求單元格有邊框,如果做不到就不能用了,不過qooxdoo的界面確實不錯,雖然比不上echo2,但速度快多了  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-29 17:29 一農

    to 福星高照
    ListView的單元格實際上是一個個的div拼起來的,如果需要邊框就要改變這些div的border,這個需要你設置單元格的邊框屬性。你可以了解qooxdoo的theme,然后給你用的單元格,添加border屬性就可以實現了。我試了一下可以,但如果你要對邊界上的單元格和內部的單元格做區別對待的話,就要修改庫的代碼了。或者對所有單元格二次處理一遍。

    echo2和qooxdoo的機制不一樣,速度上不好比。echo2也有設計工具了,這個滿方便的,但我覺著echo2的方式不太好,至少我不喜歡。qooxdoo+rpc的開發模式更像C/S方式的開發,可惜沒有界面設計工具,也沒有很好的javascript編輯環境,不過我們現在盡量將邏輯放在后臺,所以開發起來感覺還是蠻好的,比傳統的網頁方式感覺還好,還快,一個同事說,使用qooxdoo+rpc感覺很多事情都很直接,而不是像使用網頁刷新那樣,要考慮頁面數據的保留問題等等。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-30 18:56 hawk

    你好,最近也適用了一下qooxdoo,感覺真的不錯,對于面向對象開發來說,是一個不錯的b/s開發模式,在這里,我想請教你一個關于listview的問題,如何才能設置交替出現行的顏色呢?謝謝!  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-30 22:56 一農

    @hawk
    這個問題我也嘗試了一下,但沒成功,還沒時間去了解原因,你可以查看一下LisView里的幾個單元格的類,可以添加字體等樣式的,但我加了背景后背景的顯示總是一閃一閃的。現在我用的電腦上沒源碼,我會抽時間研究一下這個問題,到時在此回復一下。
    另外推薦firebug,可以幫助你解決這個問題。
      回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-31 10:52 福星高照

    我以前就看過listview生成的html,確實是div的,但強行更改其div的樣式是不行,不知道你說的修改其theme是怎么實現的,能否給個例子,我研究qx不久,沒什么經驗

    我以前也是用appfuse+dwr來實現ajax的,感覺還行,表格是仿照displaytag的樣式,覺得不足的地方就是dwr一旦得不到數據,就會彈出對話框,很是不爽,不知道rpc是這樣的嗎  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-31 12:17 一農

    @福星高照
    1、你在qooxdoo-0.5.2-dos\themes\appearance\default下會看到theme.js文件,看一下代碼就明白了^0^
    2、JSON-RPC-JAVA在后臺發生異常時,他會生成一個js的異常,你可以捕獲該異常然后自行處理。如果得不到數據就直接返回你返回的內容,或為null,或為空數組等。

    不知兄弟,身在何方,如果在南京,我們可以一起聊聊。我現在有個java的學習小組,大家互相學習,互相促進。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-31 14:11 福星高照

    呵呵,我在北京,我小舅子在南京
    有經驗大家交流唄:)
    我下載的是0.5.3沒有theme.js
    我弄個0.5.2來瞅瞅  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-31 14:54 福星高照

    原來在source里面才有theme.js,確實整成功了單元格的邊框,不過感覺還是沒有表格的好,如果高度不合適的話,最后一行是不完整的,可能有點吹毛求疵了吧,但在實際應用中用戶總是這樣挑三揀四的,沒轍

    對了,不知道你需要不需要qooxdoo的表格排序,默認情況下,qooxdoo是不支持中文排序的,得修改它的腳本才行。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-07-31 15:20 一農

    @福星高照
    1、你說的情況確實是的
    2、我測試的是支持中文排序的,你再檢查一下看看,不過我還沒來得及看0.5.3,另外如果你需要特殊的排序方法,可以自己添加排序方法,可以參考一下
    QxCompare.js
    3、我的gmail信箱是ynstudio,在這回帖聊天怕影響別人瀏覽^0^。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-01 16:56 福星高照

    呵呵,增加增加人氣嘛
    我研究了一下qooxdoo的QxCompare.js代碼,發現它不能正確的實現中文排序啊?
    他的排序不是按照中文拼音實現的,是不是你改過了QxCompare的代碼了?

    ps:qxmenu好像不能捕獲mouseleave事件,我本來想通過這個事件實現鼠標移開菜單就自動消失的,有其他方法實現嗎  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-01 17:49 李孜

    我最近也再看Qooxdoo,比較關心性能的問題,主要是動態創建一些控件后,如果又刪除掉,好像無法使內存使用降到創建之前的水平,除非刷新頁面,這點好像Bindows做的比較好。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-01 21:37 一農

    @福星高照

    1、我剛才看了一下確實中文排序有問題,不過我猜想原因是我使用RPC是基于utf-8的,所以排序不是按拼音。utf-8里漢字是按筆劃組織的。這個問題我有時間會測一下原因,不過似乎不好解決,沒辦法的話,可能要交由后臺處理一下了。

    2、這個我沒了解過,你可以參考一下menubarbutton。



    @李孜
    首先是remove,然后再dispose掉,不過也降不到初始值。bindows不是免費的,所以我這邊沒有使用。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-02 10:20 福星高照

    排序跟rpc沒有任何關系,qooxdoo默認用的是sort方法,這個方法的排序是按照字符集的順序來的

    關于中文排序問題,可以修改QxCompare.js,把QxCompare.byString的方法改了,倒是很簡單,改成return a.localeCompare(b);

    localeCompare()使用本地特定的順序來比較兩個字符串,語法如下:
    string.localeCompare(target)
    參數target是要與string進行比較的字符串。
    如果string小于target,則localeCompare()返回小于0的數;
    如果string大于target,返回大于0的數;

    如果不愿意改QxCompare.byString,那么添加一個compare對象也成

    關于ajax的內存問題,這屬于正常情況,好像大部分(或者任何?)javascript創建對象后都不能把該對象的內存完全釋放,由于ajax不刷新頁面,所以內存就越用越多了
    我倒是覺得不用考慮內存的問題,因為這內存是客戶端的內存,和服務器沒有任何關系,只要頁面和服務器通訊而重新載入(比如按刷新健或f5鍵),就會回到原始的內存狀態
    除非用戶長時間的停留在一個頁面,而這個頁面又需要定時調用ajax,才會逐漸造成內存增加(我們就碰到過這種問題,后來的解決方案是過段時間自動刷新一次)  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-02 10:21 福星高照

    排序跟rpc沒有任何關系,qooxdoo默認用的是sort方法,這個方法的排序是按照字符集的順序來的

    關于中文排序問題,可以修改QxCompare.js,把QxCompare.byString的方法改了,倒是很簡單,改成return a.localeCompare(b);

    localeCompare()使用本地特定的順序來比較兩個字符串,語法如下:
    string.localeCompare(target)
    參數target是要與string進行比較的字符串。
    如果string小于target,則localeCompare()返回小于0的數;
    如果string大于target,返回大于0的數;

    如果不愿意改QxCompare.byString,那么添加一個compare對象也成

    關于ajax的內存問題,這屬于正常情況,好像大部分(或者任何?)javascript創建對象后都不能把該對象的內存完全釋放,由于ajax不刷新頁面,所以內存就越用越多了
    我倒是覺得不用考慮內存的問題,因為這內存是客戶端的內存,和服務器沒有任何關系,只要頁面和服務器通訊而重新載入(比如按刷新健或f5鍵),就會回到原始的內存狀態
    除非用戶長時間的停留在一個頁面,而這個頁面又需要定時調用ajax,才會逐漸造成內存增加(我們就碰到過這種問題,后來的解決方案是過段時間自動刷新一次)  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-02 10:52 李孜

    關于內存的問題我覺得其實還是很重要的,確實對于qooxdoo而言,在重新載入后內存會回到初始值,但是重新載入的代價是比較高的,一方面要載入近700K的js,另一方面服務器端還要考慮如何保持刷新前的狀態。
    昨天查看了一下bug列表,發現有個改進缺陷就是關于內存問題的,不過不知道到哪個版本可以解決
    http://bugzilla.qooxdoo.org/show_bug.cgi?id=39
      回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-02 11:54 一農

    @福星高照
    localeCompare,^0^,好

    @李孜
    開發人員的回復只是解釋了,這個內存問題的原因,并沒有說可以解決,除了刷新,我們發現只有把所有相關的頁面都最小化,IE才會進行內存的釋放。
    你說bindows沒這個問題,抽時間研究一下。不過在我們項目里,主要的內存消耗我們發現是由于window.open造成的,同一頁面長時間操作變化不算太大。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-02 12:55 福星高照

    js不需要每次都載入吧,緩存不能對js起作用嗎?
    關于刷新前的狀態,該保留的還是得保留吧,如果客戶手動刷新,難道不處理?
    我看了看bugzilla,好像不能很快解決,說得是This is not directly a memory leak

    一農
    你說得太簡單,menubarbutton如何用  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-03 13:37 一農

    @福星高照

    1、"你說得太簡單,menubarbutton如何用"
    因為我現在沒時間去看這個問題所以我才說,讓你參考一下menubarbutton,因為Qxmenubar就處理了mouseleave,來切換menu。

    2、"js不需要每次都載入吧,緩存不能對js起作用嗎?"
    js文件是被緩存但是瀏覽器還是要重新把qooxdoo.js解釋一遍,這個是消耗時間的,而且是明顯的消耗時間。

    3、"關于刷新前的狀態,該保留的還是得保留吧,"
    不單刷新,而且后退也應該處理的,但感覺會帶來麻煩,對我做的項目來講似乎也無必要.不知你是如何保留刷新前狀態的.如果我來處理這個問題的話,我可能會模仿編輯器的方式設置一個undomanager,來處理,通過iframe來記錄后退。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-03 19:57 一馬

    學習中...
    比較深奧
    請各位多指教  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-04 10:06 福星高照

    menubar用的是mouseout,其實研究研究qooxdoo所有的關于menu的例子就會發現還是存在一定bug的,理論上,如果出現子菜單以后,再回到主菜單,展開的子菜單應該消失才對,但實際上,如果快速的移動,子菜單是不會消失的,這就是mouseout的問題所在。
    如果在debug模式下,可以看得見,mouseout有時候的parent是menulayout,有時候是clientdocment,所以用mouseout就有這個問題  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-08 16:21 hawk

    有好幾天沒來了,呵呵,上次我提過的QxListView交替行顏色的問題,我參考QxList例子修改了源代碼,增加了一個backgroundColorUnselected屬性,雖然能過出現交替顏色,目前還沒有問題,不過,總感覺有些不對勁,希望,大家能提供更好的解決法案,在不修改源碼的前提下實現,呵呵,另外,我還想問一個問,我用QxRequest獲取數據,返回的卻是中文亂碼,不知道大家是怎么解決這個問題的,請指教!:)  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-08 16:25 hawk

    另外我個人覺得QxListView并不適合大量數據的顯示,在數據列太多情況下,滾動條的速度變的慢的難以接受,我更喜歡active_widgets的grid,如果能寫一個QxGrid就好了,呵呵  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-09 09:17 sun123

    不知福星高照 老兄的menu問題解決了沒有,我也非常想解決這個問題,
    我是因為在menu下面放了個Qxiframe,當打開menu時候,點在Qxiframe里面,menu就不會自動關上,非常麻煩。
    另外,強烈建議大家搞個討論qx的地方,上傳一些例子share。
      回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-09 10:04 一農

    @hawk
    我用QxRequest獲取數據,返回的卻是中文亂碼,

    你查一下response的header中是否有編碼信息,如果沒有在header中添加編碼信息。

    @hawk
    另外我個人覺得QxListView并不適合大量數據的顯示,在數據列太多情況下,滾動條的速度變的慢的難以接受,我更喜歡active_widgets的grid,如果能寫一個QxGrid就好了,呵呵

    是的,QxListView的效率不太好,我看到其他庫的一些ListView(有的叫grid)是基于table實現的,而QxListView是單獨的一個個div,在我的T42上其實運行還是滿流暢的,但配置差一些的機器就明顯的滿了。http://www.linb.net/ 的ListView(grid)滿好的可以參考一下,linb是國人開發的,不錯。

    @sun123
    你的問題和福星高照兄的不一樣,你用iframe后,就會存在這樣的問題,因為菜單的顯示和消失是通過感知鼠標的,但當你的鼠標進入iframe后,菜單所在的frame就無法感知鼠標了,所以也就消失不了了。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-09 10:06 一農

    @sun123

    另外,強烈建議大家搞個討論qx的地方,上傳一些例子share。

    大家可以看看哪家論壇可以提供這個幫助,我朋友有個論壇,但其主題和這個不是很合適,雖然他們公司也是做互聯網開發的。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-09 12:52 sun123

    謝謝一農兄的回應
    那我能不能寫一個函數,通過iframe的mouse move 調用parent的函數,關閉現在打開的菜單( 如果有菜單打開的話),這個函數該怎么寫呢?
    如果實現鼠標移開菜單就自動消失的效果,我想我的問題也解決了。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-11 13:46 福星高照

    to:sun123
    研究了一下qooxdoo的代碼,本來想添加mouseleave事件的,未果,是水平也不夠啊時間也不多,呵呵

    如果確實有隱藏菜單這種需求的話(好多客戶都會提的),我想可以捕獲ClientDocument的mousemove事件來實現這一功能,不能算好的想法,但確實能做到,呵呵  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-11 13:47 福星高照

    我以example下的menu1.htm為例作個例子給你看看吧,供參考
    把這些代碼放到main函數的最后
    var timer=new QxTimer(250);//設置timer的間隔
    timer.addEventListener("interval", hidemenu, this);//設置timer在間隔后關閉菜單,同時停止timer
    function hidemenu(o){
    timer.stop();
    m1.hide();//m1為主菜單
    }

    d.addEventListener("mousemove", dividerDragMove, this); //d為this.getClientWindow().getClientDocument();
    function dividerDragMove(e){
    //this.debug(e.getTarget());
    var t = e.getTarget();
    if (t==d && m1.isSeeable()){
    timer.start();//如果菜單可見,同時鼠標位置在getClientDocument上,說明鼠標已經移開了菜單,所以啟動timer
    //如果d上面還放置了其他的對象,一起加上,防止移到該對象時鼠標不消失

    }
    e.setPropagationStopped(true);
    } ;  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-11 13:52 福星高照

    說老實話,其實我還是喜歡那種客戶端和server端用get/post來交互的(在某些地方用用ajax去數據,我一般都用dwr),qooxdoo好像不是很直觀的能實現,不過他的ui庫確實還不錯。
    要是有個好的純web ui庫就好了,yahoo ui不怎么好看  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-11 15:47 一農

    @福星高照

    YUI我覺著主要是比較小,如果項目中僅僅是把特殊的WEB UI作為輔助的話,還是不錯的,雖然部件還不全。而qooxdoo 700K的代碼真的很頭疼,有些客戶的舊機器跑起來很費力。
    我有時也覺著使用現在這種模式開發不如以前的直接網頁get/post方便,一直感覺有些想不通,為什么會原來的模式會感覺方便,現在感覺原因是這樣幾個方面,1、原來的時候頁面設計可以交給美工,現在自己做,2、原來html和java代碼可以混合寫,即jsp的方式,現在用javascript將顯示和數據進行結合,使用widget還好些,如果是直接操作HTML,那就像CGI的方式了,3、javascript的編輯器比jsp的還不好。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-11 23:10 福星高照

    700多k是有點多,一種辦法是先下載它的源代碼腳本,用demo下的demoinclude進行裁減,去掉不用的,然后找壓縮工具壓縮,可能會好些
      回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-12 14:50 asan

    我是才學這個的
    我問下樓主,你的主界面上的IE中的菜單條,地址欄等是怎么去掉的????  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-14 16:32 sun123

    to福星高照:
    謝謝你的回答,看來要處理好這個菜單問題,還是蠻復雜的。
    to一農:
    我覺得你那里舊機器跑得慢,更重要的原因應該不是700k的大小(那是網絡傳輸的問題),而是機器的性能。其實我認為那個700k的js還可以再壓縮的,它內部的局部變量名都還有壓縮的余地。
      回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-14 16:36 sun123

    to asan :
    估計是一農在用戶驗證之后又重新打開一個窗口
    :)  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-14 22:06 一農

    @asan
    :-)
    正如sun123所說。

    @sun123
    我覺得你那里舊機器跑得慢,更重要的原因應該不是700k的。。。。。

    是的,我的理解是對于老舊的機器,瀏覽器解析這700k的代碼可能有些困難,而不是因為文件大而傳輸慢,瀏覽器可以緩存的,這個不是問題。多數情況下,一般的電腦運轉起來還是蠻流暢的,只是一次打開一個幾百個節點的樹有明顯的等待,這個還是可以接受的。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-15 12:39 sun123

    還令我比較煩得是 qx的升級問題
    我從qx 0.12 開始寫些東西,慢慢跟著升到 0.14 基本上是themes里面多加了些圖標和修改了些bug.也沒什么。后來到0.15 一下子升到0.51 ,這下我寫的東西有好多都不能用了,只有重新寫過,現在又有升級到0.6的跡象,據說是加進name space 的支持。不知要不要改寫我們的程序。
    :(  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-16 00:52 一農

    @sun123

    你是在正式的項目中使用的嗎,能不能詳細談一下你的想法,包括各類ajax庫的比較,福星高照兄也是,抽時間寫點全面一些的文字,我們也學習一下 :-) ,看看高手的想法  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-16 09:26 sun123

    to 一農
    其實我也沒怎么用的深,只是用qx作framework,他的menu和wedget作的很漂亮,而且速度快,風格也同一,dojo有的地方比他好,象fisheye 非常cool.
    ,但是讓我傷腦筋的是他們處理數據庫應用的能力實在不行....。沒辦法,只能,做iframe來嵌入,這才出現了我上面的menu問題。
    我在iframe里面嵌入的頁面,就像c/s中的數據控件,專職來處理數據維護、錄入、以及后臺處理的。
    我這種想法是不是土了點... :-)  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-16 12:09 一農

    @sun123

    1、不是很理解你的意思,你的iframe里的頁面是否也是使用的qooxdoo?
    2、對于數據處理來講,我們使用QxListView來列表顯示普通的數據,使用QxTree來顯示具有層次關系的數據,使用QxTextField,QxComboBox等來構成Form表單,給用戶輸入數據,然后將這些數據組織成數據對象,使用json-rpc-java來傳遞為后臺進行處理,官方的json-rpc-java并不好用,你可以使用dwr來完成同樣的功能。我們使用QxGridLayout來對QxTextField,QxComboBox進行布局,自己寫了一個FormManager的方法來對QxTextField,QxComboBox這些表單項做些輔助性的管理。最后的效果就如本文中的第三張圖片一樣。

    不知這些是否有點用處。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-17 09:26 sun123

    to 一農
    1.iframe 里不用qx,是其它的js,你看,如果光用QxTextField和QxComboBox對付各種數據好像還是差一些,比如,怎么區分數據類型,數據位的長短限制。數據顯示格式....等等,如果都到后臺處理,就浪費資源了。就拿你的編號來說,如果數據庫里是char(4),怎么限制用戶輸入4位呢,如果它輸入4位以上怎么辦呢?這些都自己寫的話太累了,還有日期怎么做到yyyy/mm/dd 或yy.mm.dd等不同的格式呢?還有分頁什么的。
    2.你說的布局,是用腳本寫出來的,還是通過什么格式化數據如xml生成出來的?
    3.你說 ....然后將這些數據組織成數據對象..
    具體是怎么做的?怎么區分哪些是刪除,哪些是修改的數據,修改的數據又修改了哪些字段?還是你把頁面上的數據都傳遞回去更新?  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-17 10:32 一農

    @sun123

    似乎你只是使用qooxdoo做外殼,多數情況下,還是使用其他的技術。

    1、你的“其他的js”是什么,我很感興趣,有這么強的功能,還是使用了一些validate框架,如struts的. 現在我都是自己手工在寫js進行校驗。但正在籌備給QxListView提供一些輔助功能,來達到校驗的目的,同時附加增刪改的通用代碼,我們還在開發一個數據庫管理工具,然后在此基礎上,實現類似ROR的一些機制,如自動先生成一套基本的數據庫管理的代碼,然后項目在這些基礎代碼上,進行開發。

    2、用腳本寫的,準備用QxBuilder做,但多數頁面代碼并不多,大家都懶得去了解QxBuilder。不過我還是推崇QxBuilder的方式。

    3、你的iframe里的內容還是使用基本的struts的方式嗎,我這邊因為界面全部是使用qooxdoo,所以頁面不進行刷新,與后臺的數據交換都是使用xmlhttpclient,但直接使用顯然開發效率太低,所以使用了一些框架,原來是使用DWR,我也推薦你使用DWR,雖然我現在使用json-rpc-java,但這是經過我們改造的,在使用方便性上和DWR類似。
    我不知該如何說明寫點示意代碼你參考一下
    后臺定義類
    public class Foo{
    public void saveObject(com.ynstudio.xxx.User user){....}
    }
    然后在spring里注冊為id='foo'
    前臺頁面的js
    var user = new Bean('com.ynstudio.xxx.User');
    user.set('id','ST001002');
    user.set('name','張三');
    json.rpc('foo.saveObject')(user);
      回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-17 17:02 sun123

    to一農
    其實說起來不好意思,我基本上后臺沒有用到多少java,主要是用,powerbuilder來做的,先用powerbuilder做好類似bean的東西,然后服務器按照所有的menthod生成一套ejb的外殼,這樣在jsp里就幾乎把她當成ejb來調用。
    所用的js就是sybase公司轉為datawindow開發的一套js。個人覺得非常方便。
    但是他還是有缺點的,就是還是使用傳統的form刷新機制。

    我沒有用DWR,主要是java方面的功力不行。
    主要用一套sack的js庫,來處理ajax。基本原理應該是差不多的。

    你的數據更新現在只局限于一條一條的更新嗎?如果用戶修改了一個listview中的若干數據,你打算如何來處理呢,是把所有的數據讀回到后臺去處理嗎?  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-17 17:31 一農

    @sun123

    我們現在沒有涉及到多條數據的修改,不過如果做這種功能的話,實現方法也和form刷新一樣的,xmlhttprequest提交和form提交,主要就是頁面是否切換,另外xhr似乎不能上傳文件。
    只不過如果我們做的話,就要自己想一下,如何做方便了,qooxdoo的ListView還是單薄了些,我們會再找些其它的ListView(一般其它的都叫Grid)看看。

    sybase公司我總覺著他不大肆宣傳自己,但他卻推出很多漂亮的工具。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-08-18 09:02 sun123

    to 一農
    qx 的ListView 還不能 edit,active_widgets是可以的,他們的風格讓我覺得是同一批人開發的。如果是qx該多好。  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-09-09 16:45 fred

    請教一下,
    使用qooxdoo能作到dhtmlgrid的效果嗎? 是多行數據輸入,修改,一次性保存?
      回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-09-10 10:35 一農

    @fred

    你是說 dhtmlXGrid.js ?
    還是其他的?
    qooxdoo0.6有了table,這個table相當于一般講的grid,
    http://qooxdoo.org/demo
    你可以到他的網站去看看,因為是國外的網,所以速度上要慢一些  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-10-12 16:06 stoneboy

    一農:

     你好!
     
     看了你這個帖子,受益非淺!但是還是有些疑問,希望你能幫助我回答:
     
     1、Qooxdoo本質上是一組基于JS的WEB UI組件,其本身并不能異步通信,只有結合DWR才能實現異步通信,即達到調用后臺數據庫數據不刷新頁面的效果。這個認識對嗎?
    2、你提到的json-rpc-java,我沒接觸過,我想問下它能否實現異步存取數據?
    3、最后,想問一下,如果我想返回多條數據到客戶端,怎么去接收。數據是以值讀象數組來組織還是用List返回好呢?
    改下你的例子如下:

    后臺定義類
    public class Foo{
    public void saveObject(com.ynstudio.xxx.User user){....}
    public List getObjects() {...}
    }

    然后在spring里注冊為id='foo'

    前臺頁面的js
    // 我的JS比較爛,不知道寫的對不?
    // 如果用json-rpc-java
    var user = new Bean('com.ynstudio.xxx.User');
    Var userList =json.rpc('foo.getObjects)
    //怎么把 userList數據給Qooxdoo的UI組件呢?



    //如果用DWR,JS腳本中又怎么實現呢?



    請指教,多謝!
      回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-10-12 16:09 stoneboy

    一農:

    你有MSN或者其他即時通工具嗎?能留給我嗎?  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-10-12 17:20 stoneboy

    關于QooXDoo樹控件的使用

    有兩個問題:
    1、樹的節點能把業務對象的ID和Name一起關聯起來嗎? Name用來顯示,ID用來為其他查詢提供依據,比如查該節點業務對象的詳細信息或著查它的下級所有 節點信息.
    2、如果數據量很大,比如上萬,樹的效率怎樣?能實現動態裝載下級節點嗎?即每次雙擊某節點時再從后臺取數然后生成它的下級節點,不知道一農在項目
    中是怎么實現的,希望能介紹下!
      回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-10-12 18:13 一農

    @stoneboy
    1、我認為這么理解是對的
    2、3、你具體使用qooxdoo做些東西就曉的了,我還是推薦了解dwr,因為我用的json-rpc-java是經過我很多改造的,所以這里沒辦法討論。dwr返回的數據也是適用的json的格式。所謂json其實很簡單,http://www.json.org/,有點類似于Map,就是屬性結合的表示方法。至于同步,異步,你需要了解一下xhr,本質上dwr,json-rpc-java都是基于xhr的,可以參考這個網站 http://www.xmlhttp.cn/
    4、我的gmail郵箱是ynstudio

    :-),希望能有點幫助

    關于樹,qooxdoo的效率不高,不過dojo似乎更低 :-),節點多的話,當然要動態裝載了 :-)  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-10-25 13:37 一農fan

    啥時候把把JSON-RPC-JAVA做的改動公開出來?說的我心神蕩漾!  回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-10-25 13:39 一農fan

    請問您是如何分包和加載js。
      回復  更多評論   

    # re: appfuse+qooxdoo+JSON-RPC-JAVA 2006-10-25 15:17 一農

    @一農fan
    1、其實我修改的主要是其中的JSONRPCBridge類,把根據className獲取對象的方法和spring結合起來而不是像原來那樣從session中獲取。我貼出代碼沒有任何意義,因為這個修改很細微,只要你了解了json-rpc-java的JSONRPCBridge邏輯,自然而然就明白了。我就不想獻丑了,如果今后我把代碼優化一下,自己能滿意一點,或許我會貼出來,提高一下自己的抗擊打能力。
    2、你讀一下dojo的代碼就明白了,比我做的方式對你更有益處。

    高手開源的東西太多了,你有空余時間的話,可以花時間看看,我這個業余選手的東西實在是污染視聽,我做這個blog的目的是為了看看是否有公司需要類似的技術,招我做做兼職 :-)。
    最近在找工作,被筆試,面試,烤的焦頭爛額,我本科不是學計算機的,現在是讀電子研,所以數據結構等抱抱佛腳學的一點東西,去考試真的滿痛苦。如果你是在校生,或想到一些大公司,不要花太多的時間去學這類技術,把數據結構,離散數學多學學,多練練。  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    公告

    南京 java輔導班 約等于免費 詳見yuqiaotech.com

    導航

    <2006年10月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    統計

    常用鏈接

    留言簿(10)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩精品亚洲专区在线影视| 亚洲精品无码MV在线观看| 毛片视频免费观看| 2021免费日韩视频网| 18未年禁止免费观看| 亚洲人成免费电影| 精品免费久久久久久久| av无码免费一区二区三区| 欧洲乱码伦视频免费| 最近中文字幕免费mv视频7 | 亚洲一级高清在线中文字幕| 亚洲国产精品xo在线观看| 亚洲视频欧洲视频| 亚洲人成7777影视在线观看| 亚洲情A成黄在线观看动漫软件 | 亚洲六月丁香婷婷综合| 精品久久久久久亚洲精品| wwwxxx亚洲| 国产亚洲精品2021自在线| 免费激情网站国产高清第一页| 日本一区二区三区在线视频观看免费| 免费一级全黄少妇性色生活片 | xxxxx做受大片视频免费| 在线看片免费人成视频播| 午夜免费福利片观看| 青草草色A免费观看在线| 欧洲美熟女乱又伦免费视频 | 99久久免费看国产精品| 全免费毛片在线播放| 国产性生交xxxxx免费| 国产精品亚洲二区在线观看 | 免费羞羞视频网站| 亚洲国产91精品无码专区| 在线观看亚洲天天一三视| 久久亚洲国产伦理| 亚洲伊人久久大香线蕉在观| 亚洲国产精品成人午夜在线观看 | 亚洲自偷自偷在线成人网站传媒 | MM1313亚洲国产精品| 国产精品免费久久| 99re6免费视频|