出版時間:2010-1 出版社:機械工業(yè)出版社 作者:徐彬 頁數(shù):316
Tag標簽:無
前言
1995年底,Netscape發(fā)布了Navigator 2.0版本,它加入了一個重要的特性:可以在頁面中嵌入JavaScript語言。在Navigator 2.0發(fā)布前,Ne~cape將這種新語言命名為LiveScfipt,但最終發(fā)布時卻使用了JavaScfipt這個名字,因為Netscape想借助Java這門當時最炙手可熱的語言迅速走紅。Navigator 2.0發(fā)布后,Web程序員們立刻喜歡上了這門新語言。使用JavaScfipt能夠在網(wǎng)頁中實現(xiàn)用戶輸入信息的校驗工作,比如檢查E.Mini的地址格式是否正確,核對密碼和校驗密碼是否一致等。在當時那個網(wǎng)絡帶寬只有28.8kBps的年代,能在瀏覽器端驗證這些信息,無疑是Web開發(fā)界的一次重大變革。在JavaScript出現(xiàn)之前,如果用戶在瀏覽器端輸入一個錯誤信息,往往需要等待10多秒鐘才能收到從服務器端發(fā)回的反饋,這對用戶來說簡直是不可接受的。JavaScnpt出現(xiàn)以后,很好地解決了這個問題,Web應用的用戶體驗有了一個質(zhì)的飛躍,嵌有JavaScfipt的Web應用備受用戶青睞。 1996年8月,微軟發(fā)布了Internet Explorer 3.0。那時,微軟在瀏覽器市場上還只是個跟隨者。為了能兼容大量嵌入JavaScript的網(wǎng)頁,Intemet Explorer 3.0也提供了對JavaScfipt的支持。微軟將他們的語言命名為JScript,以避免版權(quán)和商標上的麻煩?! ∥④洖镴Scfipt加入了一些新的特性,但這導致JavaScfipt和JScfipt出現(xiàn)了兼容性問題。為避免這一問題繼續(xù)擴大,Ne~cape把JavaScript語言規(guī)范提交給ECMA(European ComputerManufacturing Association,歐洲計算機制造協(xié)會),申請制定JavaScfipt語言標準。1997年年中,ECMA正式制定了EcMA.262標準。從此,JavaScnpt又被稱為ECMAScfipt。 隨著Pc計算能力的增強,JavaScfipt不再滿足于完成驗證用戶輸入這樣的簡單工作。2005年,AJAX進入程序員的視野。AJAx把頁面的邏輯全部搬到了瀏覽器端,僅把數(shù)據(jù)留在服務器上。網(wǎng)頁不再需要刷新,用戶能夠在瀏覽器中享受和桌面應用程序一樣的流暢體驗?! ∪欢?,事物總是具有兩面性。JavaScfipt作為一種動態(tài)語言,在驗證用戶輸入和實現(xiàn)一些網(wǎng)頁特效方面有得天獨厚的優(yōu)勢。但是,對于開發(fā)需要多人合作的大型項目來說,它卻存在著以下問題: 第一,動態(tài)語言的代碼編寫具有隨意性和自由性。對于一個需要長期維護、多人參與的大型項目開發(fā)來說,JavaScfipt在代碼維護、團隊合作、編碼規(guī)約、技術(shù)交流上存在著諸多不利因素?! 〉诙?,動態(tài)語言的狀態(tài)屬性需要在運行時才能確定,IDE無法完整地實現(xiàn)智能提示。
內(nèi)容概要
國內(nèi)第一本基于GWT 2.0的經(jīng)典著作,4大專業(yè)社區(qū)聯(lián)袂推薦,權(quán)威性毋庸置疑!《GWT揭秘》內(nèi)容全面,不僅詳細介紹了GWT的主要模塊和控件、GWT與JavaScript對象的交互、在GWT中使用XML、開發(fā)自定義GWT控件、GWT-RPC和Ext GWT等必備的基礎知識,而且還深入講解了GWT與Flex整合、圖片緩存、本地化、GWT動畫、歷史管理、延時/等待/分片執(zhí)行等高級知識:《GWT揭秘》注重實戰(zhàn),所有知識點都配有精心設計的范例,尤為值得一提的是,還以迭代的方式重現(xiàn)了經(jīng)典的俄羅斯方塊游戲和一個完整的報銷審批系統(tǒng)的開發(fā)全過程,既可以以它們?yōu)榉独M行實戰(zhàn)演練,又可以將它們直接應用到實際開發(fā)中去。
作者簡介
徐彬,資深軟件工程師、項目經(jīng)理和系統(tǒng)架構(gòu)師,從業(yè)10余年,實戰(zhàn)經(jīng)驗豐富。精通C++(CSDN論壇C++版專家)以及GWT等AJAX技術(shù),擅長C#、Java、JavaScript開發(fā),對Oracle也有深入研究。多年來一直從事國土和規(guī)劃領域的政府單位的信息化建設,曾負責過西安、南京、烏魯木齊、杭州
書籍目錄
前言第一部分 準備篇 第1章 準備開發(fā)環(huán)境 1.1 安裝JDK 1.2 安裝Eclipse 1.3 安裝GWT 1.7的Eclipse插件 1.4 安裝GWT2.0的SDK以及Eclipse插件 1.5 輔助工具 1.5.1 Internet Explorer Developer Toolbar 1.5.2 Firebug 1.6 小結(jié) 第2章 Hello GWT 2.1 在Eclipse中創(chuàng)建項目 2.2 運行調(diào)試項目 2.3 JUnit測試 2.4 發(fā)布網(wǎng)站 2.5 ANT發(fā)布 2.6 小結(jié)第二部分 基礎篇 第3章 GWT模塊 3.1 GWT模塊詳解 3.2 模塊入口點 3.3 模塊繼承 3.4 附加CSS和Java Seript 3.5 路徑配置 3.6 延遲綁定 3.7 發(fā)布JAR 3.8 深入研究 3.9 小結(jié) 第4章 JSNI 4.1 JSNI和JavaScript 4.2 類型映射 4.3 Java Script Object 4.4 Js Array 4.5 JSNI中的特殊變量 4.6 在JSNI中訪問GWT函數(shù) 4.7 異常處理 4.8 外部JavaScript訪問GWT函數(shù) 4.9 整合jQuery 4.10 在GWT中使用正則表達式 4.11小結(jié) 第5章 在GWT中使用XML 5.1 XML簡介 5.2 XML操作 5.2.1 XML文檔 5.2.2 XML節(jié)點 5.2.3 XML元素節(jié)點 5.2.4 XML文本節(jié)點 5.3 在GWT中使用X Path 5.4 小結(jié) 第6章 GEWT控件詳解 6.1 界面對象 6.2 Widget 6.3 面板 6.4 控件生命周期 6.5 控件事件管理 6.5.1 注冊控件事件處理句柄 6.5.2 阻止控件默認行為 6.5.3 阻止事件冒泡 6.5.4 on Browser Event 6.6 GWT全局類 6.6.1 DOM類 6.6.2 GWT類 6.6.3 Window類 6.7 小結(jié) 第7章 使用GWT控件 7.1 簡單控件 7.1.1 包裝已有控件 7.1.2 圖片超鏈接 7.1.3 圖片按鈕 7.1.4 復選框 7.1.5 單選框 7.1.6 文件上傳 7.1.7 Date Picker 7.2 列表和菜單 7.2.1 列表 7.2.2 帶建議的輸入框 7.2.3 樹 7.2.4 菜單 7.3 面板 7.3.1 裝飾面板 7.3.2 流式布局面板 7.3.3 水平布局面板和垂直布局面板 7.3.4 絕對布局面板 7.3.5 Tab面板 7.3.6 滾動面板 7.4 表格 7.4.1 簡單表格 7.4.2 復雜表格 7.5 使用與自定義GWT控件 7.5.1 Combo Input控件結(jié)構(gòu) 7.5.2 Data Item 7.5.3 List Box 7.5.4 Selected事件 7.5.5 Trigger Input 7.5.6 Combo Box 7.6 小結(jié) 第8章 GWT.RPC 8.1 GWT中的XMLHTTP Request 8.1.1 HTTP Request Imp1 8.1.2 Request Builder 8.1.3 請求動態(tài)數(shù)據(jù) 8.1.4 XML 8.2 JSON 8.2.1 JSON Value 8.2.2 JSON Value的派生類 8.2.3 完整的JSON例子 8.3 GWT.RPC 8.3.1 RPC遠程接口 8.3.2 服務器實現(xiàn) 8.3.3 異步接口文件 8.3.4 在程序中使用GWT.RPC 8.3.5 整合Hibernate 8.4 小結(jié) 第9章 Ext GWT 9.1 Ext GWT簡介及安裝 9.2 Window 9.2.1 窗口布局 9.2.2 Viewport 9.2.3 Dialog 9.2.4 窗口的顯示與關閉 9.3 數(shù)據(jù)管理 9.4 Grid 9.5 樹控件 9.5.1 圖標顯示 9.5.2 節(jié)點選擇事件 9.6 皮膚 9.7 小結(jié)第三部分 實戰(zhàn)篇 第10章 俄羅斯方塊游戲 10.1 游戲設計 10.1.1 游戲簡介 10.1.2 游戲規(guī)則 10.1.3 設計思路 10.2 編碼實現(xiàn) 10.2.1 游戲場地 10.2.2 方塊 10.2.3游戲控制器 10.3 界面實現(xiàn)及操作完善 10.3.1 候選面板 10.3.2 計分與等級 10.3.3 增加操作便利性 10.3.4 界面美化 10.4 聯(lián)機對戰(zhàn) 10.4.1 原理 10.4.2 等待游戲開始 10.4.3 交換數(shù)據(jù) 10.4.4 勝負判定 10.4.5 障礙行 10.5 小結(jié) 第11章 費用申請審批流程 11.1 流程設計 11.1.1 流程簡介 11.1.2 工作流引擎 11.1.3 表單 11.2 工作流引擎實現(xiàn) 11.2.1 環(huán)境配置 11.2.2 業(yè)務規(guī)則定義 11.2.3 jBPM數(shù)據(jù)庫初始化 11.3 表單實現(xiàn) 11.3.1 HT]ML面板 11.3.2 表單對話框 11.3.3 權(quán)限控制 11.3.4 類型校驗 11.4 審批流程的界面實現(xiàn) 11.4.1 Async Callback Ex 11.4.2 Outlook面板 11.4.3 工作列表 11.4.4 整體布局 11.4.5 用戶登錄 11.4.6 全局事件管理 11.4.7 遮蔽效果 11.4.8 實現(xiàn)BizzAction 11.5 業(yè)務流轉(zhuǎn) 11.5.1 申請表 11.5.2 審批表 11.6 小結(jié)第四部分 高級篇 第12章 GWT與Flex整合 12.1 Flex的優(yōu)勢 12.2 查看流程圖的Flex 12.3 加入網(wǎng)頁 12.4 與Flex交互 12.5 小結(jié) 第13章 圖片緩存 13.1 CSS Sprite簡介 13.2 GWT的實現(xiàn) 13.3 后端生成了什么 13.4 小結(jié) 第14章 本地化 14.1 GWT如何識別你的語言 14.2 本地化配置 14.3 日期格式化 14.4 字符串動態(tài)本地化 14.5 小結(jié) 第15 章其他高級功能 15.1 動畫 15.2 歷史管理 15.3 延時執(zhí)行 15.4 等待執(zhí)行和分片執(zhí)行 15.5 代碼分割 15.5.1 SOYC 15.5.2 初始化序列 15.5.3 編程模式 15.5.4 預加載 15.6 Ui Binder 15.6.1 HTML綁定 15.6.2 控件綁定 15.6.3 CSS綁定 15.6.4 事件管理 15.6.5 資源打包 15.6.6 創(chuàng)建控件 15.7 小結(jié)
章節(jié)摘錄
在HTTP規(guī)范中,URL請求的長度不能大于1024個字節(jié)。所以使用GET方式只能傳遞少量的參數(shù)。而使用POST方式訪問服務器,在發(fā)送URL地址后,還能再給服務器發(fā)送獨立的數(shù)據(jù)實體e。如果要傳送大量數(shù)據(jù)給服務器,那就只能用POST方式。最后一種情況是,向某些Web服務器上的請求特定類型文件時,只能使用GET方式去獲取。在代碼清單8-2的第20行,通過setCallback()函數(shù),將RequestCallback對象設置給RequestBuilder對象。如果發(fā)生錯誤,會回調(diào)onError()數(shù);請求完成,則會回調(diào)onResponseReceived()函數(shù)。觸發(fā)onResposneR_eceived()回調(diào)函數(shù),可能是請求成功了,也可能是服務器發(fā)生了異常,無法完成請求。程序第28行通過response.getStatusCode()獲取請求完成的狀態(tài)值。經(jīng)常會遇到的狀態(tài)值一般會是。 口200請求成功 口303重定向 口400請求錯誤 口401未授權(quán) 口403禁止訪問 口404文件未找到 口500服務器錯誤 把程序第19行的data.txt改為datal.txt,然后在程序第28行將response.getStatusCode()打印出來,這時就會發(fā)現(xiàn)response.getstatuSCode()返回的是404,表示在服務器上找不到dataI.txt文件。最后在程序第 35行,調(diào)用request.send()發(fā)送請求。request.send()函數(shù)可能會觸發(fā)RequestException異常,這里需要用try…catch…將其包起來?,F(xiàn)在就可以運行程序了,運行結(jié)果與代碼清單8-1運行結(jié)果一樣。
編輯推薦
《GWT揭秘》RIA帶來了全新的Web用戶體驗,同時也簡化了傳統(tǒng)的W曲開發(fā)模式。以JavaScript為基礎的AJAx技術(shù)與現(xiàn)有HTML技術(shù)一脈相承,便于與第三方技術(shù)相整合,開發(fā)效率高,技術(shù)起點低,是RIA領域中當之無愧的王者。然而,AJAx并非沒有缺陷。對于開發(fā)中小型項目來說,JavaScript有易用性、靈活性等優(yōu)勢,但是對于開發(fā)如何在GWt中使用×Path? ·如何根據(jù)實際項目的需要開發(fā)出有特色的自定義GWT控件?如何使用GWT-RPC的方式與服務器交互?它與使用UrlEncode、XML、JSON等方式與服務器交互有何不同? GWT-RPC如何與H-bernate整合? ·沒有美術(shù)功底的開發(fā)者如何使用EXT GWT開發(fā)出漂亮的用戶界面?為何EXT GWT能完全利用GWT的編譯優(yōu)勢7大型項目來說,它也存在著不少問題:代碼編寫具有隨意性,不便于維護和團隊合作;IDE無法完整地實現(xiàn)智能提示;變量類型和函數(shù)參數(shù)等的錯誤在運行時才會暴露出來;瀏覽器對JavaScript執(zhí)行錯誤的提示簡單且含糊,不便于調(diào)試和糾錯;在不同的瀏覽器上存在著兼容性問題,開發(fā)人員必須針對不同的瀏覽器分別進行開發(fā)、調(diào)試和測試,工作量大…"GVv.r完美而徹底地解決了JavaScript的這些弊端,為RIA開發(fā)注入了全新的活力?! ∪绻阋苍谒伎枷旅孢@些問題,也許《GWT揭秘》就是你想要的! · 為何白宮采用GWT技術(shù)構(gòu)建OpenFor0IJestions網(wǎng)站?為何JBoss將GWT作為其中間件的核心組成部分?為何Seam集成GWT?為何GoogIe Wave完全采用GWT開發(fā)? ·在JSNl中如何輕松地訪問GWT函數(shù)?外部JavaScript如何直接訪問GWT函數(shù)? ·如何在GWT中高效地使用正則表達式?如何在GWT中操作XML和JSON格式的數(shù)據(jù)? ·GWT如何與JavaScript和FIex交互?GWT如何與jQuery、Ext JS、jBPM相整合? ·如何利用GWT的動畫功能輕松實現(xiàn)各種自定義的動畫特效? ·如何通過GWt 2.0新增的UIBinder使用XML布局定義組件和實現(xiàn)與組件的交互? ·GWT2.0為何要新增代碼分割功能?如何開發(fā)支持本地化的GwT應用? ·在GWT中如何利用CSS Sprite技術(shù)實現(xiàn)圖片緩存,從而提高網(wǎng)站的訪問速度? GWT內(nèi)部運行機制是什么?如何提高GWt應用的性能? 國內(nèi)首部基于GWT 2.0的經(jīng)典著作,4大專業(yè)社區(qū)一致鼎力推薦!
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載