內容簡介
本書系統論述了利用Dojo構建Ajax應用程式的方法和實踐。全書內容主要由三部分組成:Dojo教程、Dojo Widget、Dojo詳解。其中各部分自成一個知識模組,相互之間又恰當銜接。 本書編寫體系完整,撰寫風格生動、配合大量的代碼示例和操作步驟,非常適合Dojo開發者學習參考。
譯者序言
Dojo、ExtJS、DWR、YUI、GWT、Prototype、ZK……面對這么多的
Ajax框架(或庫),初學者難免不知所措,我們到底該學習哪個?我想說的是,首先學習JavaScript,因為不管哪個Ajax框架,其根基始終離不開JavaScript,只有將JavaScript掌握好了才可能走得更遠,更快。那么,學習JavaScript哪些內容呢?面向對象、閉包、事件模型、DOM等都是我們必須掌握的,只有這樣才不會被一個又一個新的Ajax框架所累,才能真正凌駕於框架之上達到靈活運用的目的。
我從2006年就已經開始使用Dojo,那時的版本為0?43(這也是Dojo的一個經典版本),當時關於Dojo的資料非常少,甚至連官方網站的幫助文檔也不夠完善,迫不得已,只有閱讀Dojo的原始碼。從Dojo 1?0開始,Dojo的核心已經發生了重大的變化並且與之前的版本不再兼容;但萬變不離其宗,其架構、思想還是有相通之處的。本書講述的Dojo版本為1?1,我相信只要讀者掌握好了該版本,就可以輕鬆應對以後的版本升級了。
本書共分為三大部分,共十七章。其中第一部分提供了Dojo的初學者指南,幫助大家儘快走進Dojo的世界。第二部分重點介紹了DojoWidget,這也是Dojo最重要的組成部分,期間以表格的形式給出了各Widget的用法示例及相關屬性、方法與事件等,讀者也可以將這部分內容當作參考手冊,隨用隨查。第三部分深入講解了Dojo的方方面面,從對象與類到測試與調試,通過這一部分的學習將極大提高讀者套用Dojo和JavaScript的技能。
從接手本書的翻譯到交付出版經過了4個多月的時間,在這期間我集中了所有精力完成這本專著的翻譯,不敢懈怠。
感謝我的父母!感謝你們的培養和教育。感謝我的女友張明輝!在翻譯此書的這段日子裡,是你無微不至的關懷讓我忘卻了生活中的瑣事,專心於譯作。
不得不提的還有華章公司的陳冀康先生,是你的不斷鼓勵與幫助,給了我完成此書翻譯的信心和勇氣,謝謝。
限於譯者水平,書中難免有不妥之處,如讀者在閱讀本書的過程中發現了任何問題或是有任何建議,望與我聯繫。聯繫方式如下:
圖書序言
學習DojoToolkit時至少要清楚一點——你想要的是什麼!在剛開始使用Dojo時,我的基本目標就是創建一個有用的JavaScript工具集而不必讓專業的JavaScript開發者重複發明輪子。術語Ajax的出現掀起了一陣旋風,我們很快就發現自己創建的這個工具集被數以千計的開發者和上百萬的用戶所使用。
要是沒有Dojo Framework也不會有關於Dojo的書。感謝那些為該項目作出貢獻和長久以來幫助過我的人們,包括Dylan Schiemann、Alex Russell、Karl Tiedt、Adam Peller、Becky Gibson、Sam Foster、Ben Lowery和James Burke,要感謝 的人太多了,恕我不能一一列舉。
感謝我的夥伴們,他們給予我很多建議,包括:Ted Rafacz、Max Rahder、Steve Meshner、Bob Phifer和Will Provost。感謝我的技術偶像:Douglas Crockford、Jesse James Garret還有Ajaxian?com的那幫傢伙,是他們讓我著迷於Ajax和JavaScript。
特別要感謝我親愛的妻子Sonia,為了能讓我安心寫書,她獨自一人承擔了很多。沒有你就沒有這本書。你的支持永遠是我靈感的來源。我愛你。
關於作者
James E?Harmon是芝加哥Object Training Group的校長和高級講師。他是一名資深的開發者,主要在埃森哲(Accenture)和其他幾個Web諮詢公司開發大型的線上套用,現在專注於通過最新的技術和框架對Java開發者進行培訓。
圖書目錄
譯者序
序
第一部分Dojo教程
第1章理解Dojo:教程
1.1教程簡介
1.1.1本教程的目標
1.1.2使用Dojo的目的
1.2一個標準的HTML數據輸入表單
1.2.1First與Last Name
1.2.2用戶名
1.2.3Email地址
1.2.4地址
1.2.5州
1.2.6城市
1.2.7郵政編碼
1.2.8服務日期
1.2.9評論
1.3改進表單的計畫
1.3.1在表單中引入Dojo
1.3.2增加客戶端驗證
1.3.3增加伺服器端特性
1.3.4使用專門的Dojo widget
1.3.5處理表單
1.4獲取並運行原始碼
1.5教程步驟1——引入Dojo
1.5.1下載或是創建源檔案
1.5.2引入DojoToolkit
1.5.3引入Dojo樣式表
1.5.4回顧所有的代碼變化
1.5.5運行新頁面
第2章使用Dojo進行客戶端驗證
2.1驗證表單欄位
2.2教程步驟2——增加客戶端驗證
2.2.1驗證First Name欄位
2.2.2驗證Last Name欄位
2.2.3驗證用戶名欄位
2.2.4驗證Email地址欄位
2.2.5驗證地址欄位
2.2.6驗證城市欄位
2.2.7驗證郵編欄位
第3章使用Dojo與伺服器端
協同工作
3.1增加伺服器端特性
3.2教程步驟3a——增加伺服器端驗證
3.2.1指定事件處理函式
3.2.2對伺服器端進行調用
3.3教程步驟3b——從伺服器端接收
數據
3.3.1為城市欄位選擇恰當的Widget
3.3.2獲得州的值並將其傳送到
伺服器端
第4章使用Dojo Widget
4.1將Dojo widget增加到頁面中
Dijit——Dojo Widget模組
4.2教程步驟4——使用Dojo Widget
4.2.1使用Dojo DateTextBox Widget
4.2.2使用Dojo富文本編輯器Widget
第5章使用Dojo處理表單
5.1使用Dojo處理表單
5.2教程步驟5——處理表單
5.2.1創建Dojo Form. Widget
5.2.2對表單提交進行攔截
5.2.3檢查表單中所有元素的合法性
5.2.4將表單提交到伺服器端
第二部分Dojo Widget
第6章Dojo Widget簡介
6.1Widget是什麼
6.2Dojo Widget是什麼
6.3構成Dojo Widget的組件
6.3.1Widget HTML
6.3.2Widget樣式
6.3.3Widget的JavaScript組件
6.3.4Dojo Widget的繼承
6.3.5Dojo Widget概覽
6.3.6構建自己的Widget
第7章Dojo Form. Widget
7.1標準的Form和Dojo Form. Widget
dijit.form._FormWidget類
7.2詳解Dojo Form. Widget
第8章Dojo Layout Widget
8.1理解頁面布局
dijit.layout._LayoutWidget類
8.2Dojo Layout Widget簡介
第9章其他專門的Dojo Widget
9.1什麼是專門的widget
9.2Menu Widget
9.2.1dijit.Menu
9.2.2dijit.MenuItem
9.2.3dijit.MenuSeparator
9.2.4dijit.PopupMenuItem
第三部分Dojo詳解
第10章Dojo是什麼
10.1JavaScript和AJAX的歷史
10.2Dojo的歷史
10.3Dojo的目標
10.4Dojo簡介
10.5Dojo解決了哪些問題
10.6誰應該使用Dojo
10.7協定
10.8競爭者和替代者
10.9Dojo的未來
第11章Dojo的技術描述
11.1Dojo下載包中有什麼
11.2Dojo原始碼的組織
11.2.1頂層目錄
11.2.2深入Dojo目錄
11.3Dojo模組和特性
11.3.1命名約定和命名空間
11.3.2DojoBase模組
11.3.3Dojo核心模組
第12章對象與類
12.1對象探究
12.1.1創建對象
12.1.2封裝
12.1.3對象模板
12.1.4JavaScript的原型
12.2使用Dojo處理對象
Dojo函式:dojo.declare
12.3定義類
12.3.1父類和繼承
12.3.2dojo.declare的API
12.3.3Dojo的其他函式
12.3.4對象圖和“.”符號
第13章String與JSON
13.1文本字元串
13.1.1Dojo函式:dojo.string.pad
13.1.2dojo.string.pad使用示例
13.1.3Dojo函式:dojo.string.
substitute
13.1.4dojo.string.substitute使用
示例
13.2JSON
13.2.1Dojo函式dojo.toJson
13.2.2dojo.toJson使用示例
13.2.3Dojo函式:dojo.fromJson
第14章事件與事件處理
14.1事件模型簡介
14.1.1什麼是事件
14.1.2額外的Dojo事件
14.2定義並指定事件處理器
14.2.1使用dojo.connect指定事件
處理器
14.2.2指定事件處理器示例
14.3將事件表示為對象
14.4在Dojo中使用面向方面的編程
第15章Ajax Remoting
15.1Remoting
15.2XMLHttpRequest回顧
15.3dojo.xhrGet函式
參數詳解
15.4dojo.xhrPost
使用示例——錯誤處理
15.5處理表單
15.51Dojo函式dojo.formToObject
15.5.2Dojo函式dojo.objectToQuery
15.5.3Dojo函式dojo.formToQuery
15.5.4Dojo函式dojo.formToJson
15.5.5Dojo函式dojo.queryToObject
第16章處理DOM
16.1DOM抽絲剝繭
16.2Dojo查詢
16.2.2在dojo.query中使用選擇器
16.2.3使用dojo.query找到的DOM
元素
16.3動畫
16.3.1理解動畫
16.3.2Dojo動畫函式
16.3.3標準的動畫效果
第17章測試與調試
17.1測試
17.1.1單元測試
17.1.2DOH——Dojo單元測試框架
17.1.3其他類型的測試
17.2日誌
17.2.1基本日誌
17.2.2高級日誌