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

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

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

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

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

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

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

             例子有入門級的Hello World,也有復(fù)雜的控件展示例子,我們來看一下用GWT開發(fā)的Mail例子:


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


            我們來研究一個(gè)GWT的配置文件,比如這里的com.google.gwt.sample.mail包下面的Mail.gwt.xml文件,內(nè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指定啟動模式,這里是客戶端模式,entry-point就是這個(gè)模塊的啟動類,這個(gè)指定的啟動類必須實(shí)現(xiàn)EntryPoint接口,并實(shí)現(xiàn)onModuleLoad方法,這個(gè)方法在模塊啟動時(shí)調(diào)用,我們可以在這個(gè)方法編寫創(chuàng)建界面的代碼。

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


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


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

           

          posted on 2009-05-22 09:16 VWPOLO 閱讀(2422) 評論(4)  編輯  收藏 所屬分類: Web 開發(fā)

          Feedback

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

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

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

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

          主站蜘蛛池模板: 北海市| 珲春市| 金溪县| 凤庆县| 津市市| 西藏| 栖霞市| 河津市| 仙居县| 宝丰县| 万年县| 华宁县| 元阳县| 铜川市| 桃园县| 金塔县| 天镇县| 嘉峪关市| 彰武县| 如皋市| 右玉县| 静海县| 博乐市| 洪湖市| 青阳县| 科技| 麻栗坡县| 电白县| 玉树县| 宁阳县| 宜丰县| 永平县| 临湘市| 株洲县| 曲周县| 成武县| 紫阳县| 读书| 秦安县| 泰兴市| 长海县|