好好生活,努力工作,天天向上!

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            46 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

             作為一種使基于 Web 的應(yīng)用程序更加生動(dòng)的方法,Asynchronous JavaScript + XML (Ajax) 和 Web 2.0 的概念已經(jīng)在開(kāi)發(fā)社區(qū)中廣泛應(yīng)用,而且相對(duì)Web 1.0,Web 2.0 在用戶(hù)體驗(yàn)方面帶來(lái)了巨大提升,我們已經(jīng)很難接受瀏覽器從服務(wù)器上接受消息顯示的時(shí)候?qū)⒄麄€(gè)頁(yè)面重新加載一遍,即使是只需要更新小小的一塊區(qū)域也要重新加載,在網(wǎng)速慢時(shí),中間會(huì)出現(xiàn)白屏,這簡(jiǎn)直會(huì)讓人抓狂。隨著AJAX的出生和應(yīng)用,提交信息到服務(wù)器并顯示反饋的信息是,只需要上面的小圈轉(zhuǎn)幾圈,不需要刷新整個(gè)頁(yè)面,就能立刻看到結(jié)果了。

            在AJAX應(yīng)用方面,Google應(yīng)該算是先行者了,Google的大多數(shù)服務(wù)都基于AJAX應(yīng)用的,比如GMail,GDoc,還有搜索框的動(dòng)態(tài)提示等。Google也推出了自己的AJAX框架,那就是GWT了,全名是Google Web Toolkit,采用了一種不尋常的方式進(jìn)行 Web 應(yīng)用程序開(kāi)發(fā),它沒(méi)有采用客戶(hù)端和服務(wù)器端代碼庫(kù)的普通隔離,而是提供了一個(gè) Java API,這樣的話(huà)可以讓GWT支持用 Java 開(kāi)發(fā)和調(diào)試 Ajax 應(yīng)用,該 API 允許創(chuàng)建基于組件的 GUI,GWT 支持 java.lang 和 java.util 包的子集,還支持 GWT 自身提供的 API。編譯后的 GWT 應(yīng)用程序由 HTML、XML 和 JavaScript 片段組成,從而在用戶(hù)的 Web 瀏覽器上顯示它們,與一般的 Web 應(yīng)用程序開(kāi)發(fā)體驗(yàn)相比,使用 GWT 更接近于使用 Swing 或 SWT 進(jìn)行開(kāi)發(fā)(其實(shí)風(fēng)格更偏向與Swing),它還試圖將 HTTP 協(xié)議和 HTML DOM 模型抽象出去。實(shí)際上,應(yīng)用程序最終幾乎總是會(huì)呈現(xiàn)在 Web 瀏覽器中。

              GWT能如此引起大家的注意,我認(rèn)為由以下幾大方面的特性:GWT提供的組件庫(kù)使用戶(hù)可以很容易的開(kāi)發(fā)出漂亮的UI;使用GWT,可以方便的實(shí)現(xiàn)客戶(hù)端和服務(wù)器端的通信,特別是使得異步通信變的非常簡(jiǎn)單;提供更方便的調(diào)試功能,可以使用EclipseDebug功能調(diào)試代碼;最吸引人的莫過(guò)于用戶(hù)在開(kāi)發(fā)的時(shí)候不必?fù)?dān)心瀏覽器的兼容性問(wèn)題,因?yàn)槭褂?/font>GWT開(kāi)發(fā)出來(lái)的程序會(huì)支持IE、Firefox、Mozilla、SafariOpera

             我們可以在Google Code網(wǎng)站上下載最新的GWT開(kāi)發(fā)工具包,截止目前為止,最新的GWT工具包為:gwt-windows-1.6.4,現(xiàn)在有一個(gè)Cypal Studio for GWT的插件,可以簡(jiǎn)化GWT開(kāi)發(fā),而且值得一提的是Instantiations公司也就是開(kāi)發(fā)SWT-Designer的那家公司提供了GWT-Designer開(kāi)發(fā)工具,支持可視化開(kāi)發(fā),非常的方便,又興趣開(kāi)發(fā)GWT應(yīng)用的朋友可以嘗試一個(gè)GWT-Designer看看,個(gè)人覺(jué)得非常的棒。不過(guò)現(xiàn)在GWT Desinger不支持最新的1.6.*版本。

            Gwt-windows工具包附帶了幾個(gè)GWTDemo,在解壓目錄下的index.html文件中。打開(kāi)index.html文件的最下面可以看到一下幾個(gè)Demo的鏈接

             例子有入門(mén)級(jí)的Hello World,也有復(fù)雜的控件展示例子,我們來(lái)看一下用GWT開(kāi)發(fā)的Mail例子:


             例子提供了源代碼,我們可以將他們放入到Eclipse的工作區(qū)來(lái)研究,如果我們按照了GWT-Desinger插件的話(huà),可以新建一個(gè)GWT 工程,系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè).gwt.xml文件,里面可以配置負(fù)責(zé)模塊啟動(dòng)的啟動(dòng)類(lèi),如果未按照GWT開(kāi)發(fā)插件,也可以新建一個(gè)Java工程,然后將源代碼按照路徑復(fù)制到工程中,手工添加一個(gè).gwt.xml文件,再添加那些GWTjar包到工程的構(gòu)建路徑上。


            我們來(lái)研究一個(gè)GWT的配置文件,比如這里的com.google.gwt.sample.mail包下面的Mail.gwt.xml文件,內(nèi)容很簡(jiǎn)單,只是配置了模塊的啟動(dòng)類(lèi):

          <module rename-to="mail">
              
          <inherits name='com.google.gwt.user.User'/>
              
          <entry-point class='com.google.gwt.sample.mail.client.Mail'/>
          </module>

            inherits name指定啟動(dòng)模式,這里是客戶(hù)端模式,entry-point就是這個(gè)模塊的啟動(dòng)類(lèi),這個(gè)指定的啟動(dòng)類(lèi)必須實(shí)現(xiàn)EntryPoint接口,并實(shí)現(xiàn)onModuleLoad方法,這個(gè)方法在模塊啟動(dòng)時(shí)調(diào)用,我們可以在這個(gè)方法編寫(xiě)創(chuàng)建界面的代碼。

            在Mail.gwt.xml文件上右鍵彈出菜單選擇Run As -> GWT Hosted Mode Application,啟動(dòng)GWT應(yīng)用:


            之后就能看到運(yùn)行結(jié)果了。


            用了GWT后發(fā)現(xiàn),單純用GWT來(lái)開(kāi)發(fā)系統(tǒng)的話(huà)比較的麻煩,畢竟正如它的名字一樣,這只是一個(gè)工具,還缺少一個(gè)框架的設(shè)計(jì)經(jīng)驗(yàn),如果能夠結(jié)合Struct或者JSF的話(huà),估計(jì)發(fā)展?jié)摿?yīng)該不錯(cuò),畢竟GWT的背后是財(cái)大氣粗的Google和一伙天才。

           

          posted on 2009-05-22 09:16 VWPOLO 閱讀(2416) 評(píng)論(4)  編輯  收藏 所屬分類(lèi): Web 開(kāi)發(fā)

          Feedback

          # re: Web 2.0 之 GWT 體驗(yàn) 2009-05-22 11:33 無(wú)量字幕
          不錯(cuò)  回復(fù)  更多評(píng)論
            

          # re: Web 2.0 之 GWT 體驗(yàn) 2009-05-23 15:56 ol_soft
          ExtJs也不錯(cuò),不過(guò)這些東西都很慢啊!  回復(fù)  更多評(píng)論
            

          # re: Web 2.0 之 GWT 體驗(yàn)[未登錄](méi) 2009-05-25 17:48 Eric
          樓主能提供Google Mail這個(gè)項(xiàng)目的源碼嗎
          我的msn:yinyao01@msn.com  回復(fù)  更多評(píng)論
            

          # re: Web 2.0 之 GWT 體驗(yàn) 2009-05-26 09:43 VWPOLO
          @ol_soft
          的確,JavaScript程序最大的問(wèn)題就在性能上了,F(xiàn)lex不知道怎么樣,聽(tīng)說(shuō)性能還不錯(cuò),界面也挺美觀的,關(guān)鍵是剛開(kāi)始要下載一個(gè)SWF文件,這個(gè)文件也不小,不知道用戶(hù)有沒(méi)有這個(gè)耐心等待  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 澜沧| 巴南区| 建宁县| 东阳市| 青龙| 连平县| 石柱| 邵阳县| 香港| 天全县| 桦甸市| 望江县| 炎陵县| 桃源县| 垫江县| 大荔县| 临夏县| 阳泉市| 伊宁市| 托克逊县| 定日县| 久治县| 石屏县| 自治县| 台前县| 景德镇市| 柳林县| 石家庄市| 嘉祥县| 乌拉特中旗| 尼木县| 祁连县| 资阳市| 平果县| 临颍县| 达州市| 长治县| 政和县| 双牌县| 扎囊县| 北宁市|