ajax框架,web ui 庫 -- qooxdoo使用感想

          ??? 本來是計(jì)劃讓團(tuán)隊(duì)內(nèi)的同事一起總結(jié)使用qooxdoo的使用經(jīng)驗(yàn)和困難,然后寫些關(guān)于使用qooxdoo的總結(jié)供大家參考,但因?yàn)轫?xiàng)目的原因到現(xiàn)在也沒有時間辦這件事情,所以打算還是零零碎碎的寫一點(diǎn)是一點(diǎn),亂就亂了,今后再整理。另外最近發(fā)現(xiàn)其實(shí)國內(nèi)還是有不少人關(guān)注和使用qooxdoo的,所以立馬寫下這個帖子拋磚引玉。

          1、qooxdoo基本信息
          ??? qooxdoo帶有XHR的封裝,但其主要的還是WEB UI,提供了類似桌面程序的窗口小部件。
          ?? http://www.aygfsteel.com/ynstudio/archive/2006/07/23/59648.html
          ? 從上面的鏈接可以看到我們開發(fā)的一個項(xiàng)目中的幾個截圖,也可以到其官方網(wǎng)看其demo。
          ? 官方網(wǎng)站 http://qooxdoo.org/?,在官方網(wǎng)站上可以看到其下載地址,有兩個文件,一個是src一個是build,所謂build就是把所有的src里的js文件都合并到一個js文件里,排成一行,去除注釋,從而縮小體積,但也有700多K。
          ?? http://www.nabble.com/Javascript-f15545.html?是一個關(guān)于幾個javascript應(yīng)用的論壇,其中就有qooxdoo的,你可以從這里了解其動態(tài),參與相關(guān)的討論。
          2、RPC
          ??? 如果使用qooxdoo,而不使用XHR,那么頁面就需要刷新,這個是麻煩的。我們本來是使用的DWR,現(xiàn)在使用的是經(jīng)自己改造的JSON-RPC-JAVA。現(xiàn)在java里似乎主要就是這兩個。其他語言的話,如.net,perl,php都有json-rpc的實(shí)現(xiàn)。使用了類似JSON-RPC-JAVA和dwr這樣的技術(shù),開發(fā)模式就類似一般的C/S開發(fā)了,當(dāng)然困難還是有的。
          3、我們使用qooxdoo遇到的一些困難
          ????? A、首先是界面的開發(fā),雖然類似C/S的開發(fā)方式了,不再存在頁面刷新帶來的煩惱,思考問題更加直接,不需考慮參數(shù)傳來傳去,不需學(xué)習(xí)一堆的標(biāo)簽,特別是對于剛接觸WEB開發(fā)的程序員,接受起來更加容易。但是界面都是使用代碼來構(gòu)建的,而javascript也沒有很好的編輯工具。所以剛開始開發(fā)時還是滿痛苦的。后來有了些改觀,1、規(guī)范代碼結(jié)構(gòu),界面代碼,事件響應(yīng)代碼,公用函數(shù),歸類擺放;2、選擇更好的編輯工具,如JSEclipse,aptana等;3、使用調(diào)試工具,我認(rèn)為firefox的firebug是最好的;4、盡量把邏輯放在java里,降低界面javascript的復(fù)雜度。另外今后我們將推廣QxBuilder的使用。
          ??? B、layout的使用。對于我們這些開發(fā)人員,習(xí)慣使用table來進(jìn)行布局,在qooxdoo里只有QxGridLayout最象,但不好使用。我們開發(fā)了一些輔助方法來降低其使用難度。
          ??? C、沒有類似HTML里的Form。使用qooxdoo加RPC其實(shí)不存在,HTML中的Form+submit的方式,但直接對fieldtext等進(jìn)行操作,感覺不如form方便,所以我們開發(fā)了一個FormManager來進(jìn)行輔助。
          ??? D、中文資料少,或者說基本上沒有,有的只是些轉(zhuǎn)來轉(zhuǎn)去的沒用的文字。
          ??? E、效率問題,起初為了方便開發(fā),主頁面和其他頁面之間都是用QxNativeWindow的方式,即window.open,但由于IE的問題,以及qooxdoo 700k 的代碼,導(dǎo)致每打開然后關(guān)閉一個新窗口,內(nèi)存以6~10M的速度遞增。這個問題的解決有兩個方案,一個是不允許同時打開兩個窗口,所有的頁面都在一個iframe里切換,另外就是在主頁面里使用QxWindow,但一個使用不方便,一個開發(fā)不方便。
          4、排序的問題
          ??? 這個是福星高照兄發(fā)現(xiàn)的,原文如下
          qooxdoo默認(rèn)用的是sort方法,這個方法的排序是按照字符集的順序來的
          關(guān)于中文排序問題,可以修改QxCompare.js,把QxCompare.byString的方法改了,倒是很簡單,改成return a.localeCompare(b);
          localeCompare()使用本地特定的順序來比較兩個字符串,語法如下:
          string.localeCompare(target)
          參數(shù)target是要與string進(jìn)行比較的字符串。
          如果string小于target,則localeCompare()返回小于0的數(shù);
          如果string大于target,返回大于0的數(shù);
          如果不愿意改QxCompare.byString,那么添加一個compare對象也成。

          本來我以為是我用的是utf-8導(dǎo)致排序按照utf-8里的漢字排序,但我測試發(fā)現(xiàn),即便是純的GBK頁面,Array的sort方法也不是按照字母順序進(jìn)行排序的。這個福星高照兄也提到了。

          posted on 2006-08-05 15:12 一農(nóng) 閱讀(5468) 評論(9)  編輯  收藏

          評論

          # re: ajax框架,web ui 庫 -- qooxdoo使用感想 2006-08-05 19:41 mixlee

          為啥非的弄成C/S模式?AJAX只是補(bǔ)充而已。C/S是倒退  回復(fù)  更多評論   

          # re: ajax框架,web ui 庫 -- qooxdoo使用感想 2006-08-05 20:24 一農(nóng)

          @mixlee

          在UI上B/S是倒退,使用類似C/S的web ui是為了改善可操作性。
          胖客戶端是倒退,但富客戶端現(xiàn)在是趨勢。
          比如gmail,為什么搞那么麻煩的代碼,就是為了方便客戶操作。
          有些地方ajax只是輔助性的,有些地方則是基于ajax來進(jìn)行開發(fā),場合不同而已。  回復(fù)  更多評論   

          # re: ajax框架,web ui 庫 -- qooxdoo使用感想 2006-08-24 05:36 jolestar

          請問你怎么整合qooxdoo?在qooxdoo類中能直接用js通過dwr調(diào)用java對象么?
          能否給段參考代碼或者參考資料?
          我的郵箱 jolestar@gmail.com  回復(fù)  更多評論   

          # re: ajax框架,web ui 庫 -- qooxdoo使用感想 2006-09-04 15:45 一農(nóng)

          @jolestar

          你應(yīng)該了解dwr,這個和qooxdoo沒有什么關(guān)系。  回復(fù)  更多評論   

          # re: ajax框架,web ui 庫 -- qooxdoo使用感想 2006-09-04 17:43 sun123

          to 一農(nóng)
          help!
          最近在做這樣的一個東西
          在主窗口中有一個 iframe 和 一個 tabview
          打算在iframe點(diǎn)擊一條記錄,tabview就打開一個新的tab頁,
          在iframe 的click 事件觸發(fā) parent的一個函數(shù)function tab_1_openTab()
          但是,只有當(dāng)點(diǎn)擊以后,鼠標(biāo)移出iframe的區(qū)域才會執(zhí)行function,......好奇怪。
          后來慢慢的查,發(fā)現(xiàn)只要函數(shù)中其他語句會執(zhí)行,有類似tab_1.getBar().addBefore(tab_1_tb[index],tab_1_hs);...
          就是有add語句好像就有問題。
          你有沒有這方面的經(jīng)驗(yàn)阿?好煩人吶!
          是不是qx的add中有些什么特殊的東西。
          還有 qx 的例子中都用 window.application.main = function() .......
          這和直接寫在script 中有何區(qū)別?  回復(fù)  更多評論   

          # re: ajax框架,web ui 庫 -- qooxdoo使用感想 2006-09-04 18:16 一農(nóng)

          @sun123

          1、這個我也沒遇到過,使用iframe問題滿多的,現(xiàn)在我模仿桌面程序的多文檔方式來做的,你也可以嘗試一下,另外感覺你現(xiàn)在使用qooxdoo的方式,倒不如找一些比較小的ui庫來做。

          2、現(xiàn)在這種用法是會在document.onload之后調(diào)用window.application.main,如果直接寫的話,只能寫在</body>之前,否則有些內(nèi)容還沒準(zhǔn)備好,不過如果你的界面都是使用qooxdoo來生成的倒也無所謂,但qooxdoo的執(zhí)行就是找這個東西,在他的官方網(wǎng)站上有篇文章是介紹qooxdoo的執(zhí)行順序的,你可以去找來看看。  回復(fù)  更多評論   

          # re: ajax框架,web ui 庫 -- qooxdoo使用感想 2007-01-13 16:21 qooxdoo愛好者

          我是初學(xué)習(xí),
          請問博主可不可以講一直這個框架的應(yīng)用在項(xiàng)目中的圖片路徑要怎么設(shè)置,我要是用自已的圖片,或以放到框架本身的resource中嗎?  回復(fù)  更多評論   

          # re: ajax框架,web ui 庫 -- qooxdoo使用感想 2007-01-13 16:23 qooxdoo愛好者

          請問博主,有空的問可以多講點(diǎn)關(guān)于qooxdoo的應(yīng)用文章嗎?
          我想學(xué)習(xí),但網(wǎng)上沒有什么好的資料,學(xué)習(xí)難度太大了!  回復(fù)  更多評論   

          # spring+qooxdoo[未登錄] 2007-01-20 12:12 Lee

          你好,我目前的項(xiàng)目server采用spring,hibernate等技術(shù),在webUI層準(zhǔn)備采用AJax技術(shù),如果我采用了spring(或許其它MVC框架),如何整合qooxdoo,不知道你有何指導(dǎo)意見。  回復(fù)  更多評論   


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


          網(wǎng)站導(dǎo)航:
           

          公告

          南京 java輔導(dǎo)班 約等于免費(fèi) 詳見yuqiaotech.com

          導(dǎo)航

          <2006年8月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統(tǒng)計(jì)

          常用鏈接

          留言簿(10)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大关县| 二连浩特市| 潢川县| 天台县| 敖汉旗| 永顺县| 土默特右旗| 建水县| 平安县| 临猗县| 象州县| 环江| 高雄县| 鲜城| 禄劝| 同德县| 黄大仙区| 大同县| 政和县| 南京市| 汶上县| 北宁市| 平利县| 汉中市| 秭归县| 虹口区| 昂仁县| 英山县| 托克逊县| 阳东县| 葫芦岛市| 中江县| 崇礼县| 安乡县| 南华县| 临泽县| 长泰县| 秭归县| 屏山县| 延长县| 买车|