Dojo構建Ajax應用程式

Dojo構建Ajax應用程式

本書系統論述了利用Dojo構建Ajax應用程式的方法和實踐。全書內容主要由三部分組成:Dojo教程、Dojo Widget、Dojo詳解。其中各部分自成一個知識模組,相互之間又恰當銜接。本書編寫體系完整,撰寫風格生動、配合大量的代碼示例和操作步驟,非常適合Dojo開發者學習參考。

Dojo構建Ajax應用程式

( 美)James E.Harmon著
開發人員專業技術叢書
【作 者】James E. Harmon
【譯 者】 張龍
【出 版 社】 機械工業出版社
【書 號】9787111266648
【出版日期】2009年6月

【內容簡介】

本書系統論述了利用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個多月的時間,在這期間我集中了所有精力完成這本專著的翻譯,不敢懈怠。
感謝我的父母!感謝你們的培養和教育。感謝我的女友張明輝!在翻譯此書的這段日子裡,是你無微不至的關懷讓我忘卻了生活中的瑣事,專心於譯作。
不得不提的還有華章公司的陳冀康先生,是你的不斷鼓勵與幫助,給了我完成此書翻譯的信心和勇氣,謝謝。
限於譯者水平,書中難免有不妥之處,如讀者在閱讀本書的過程中發現了任何問題或是有任何建議,望與我聯繫。聯繫方式如下:
Email: [email protected]
部落格:http://blog.csdn.net/ricohzhanglong

【序】

學習DojoToolkit時至少要清楚一點——你想要的是什麼!在剛開始使用Dojo時,我的基本目標就是創建一個有用的JavaScript工具集而不必讓專業的JavaScript開發者重複發明輪子。術語Ajax的出現掀起了一陣旋風,我們很快就發現自己創建的這個工具集被數以千計的開發者和上百萬的用戶所使用。
就像那些發展速度遠遠超出想像的項目和公司一樣,痛苦始終是伴我們左右的。Dojo團隊花費了將近18個月的時間來解決其快速發展所帶來的問題:性能、範圍、易用性及文檔。從市場和文檔的角度來看,開源項目的名聲並不好,最開始Dojo也無法擺脫這個宿命。在發布了Dojo09、10及11之後,我們對文檔和API查看工具進行了極大的改進,現在我們可以自豪地說這些內容已經不會再給Dojo抹黑了。
除了原始碼文檔外,精彩的示例也是一本好書不可或缺的組成部分。在學習新東西時,最困難之處在於你不知道如何提出問題。Dojo是非常強大和高效的,但這也會導致一些Dojo新手無從下手。無論是狹義的Dojo還是廣義的Ajax都會有一些學習曲線,你需要具有寬廣的技術背景——從伺服器端的程式語言到JavaScript、CSS、HTML及DOM都需要掌握,外加上瀏覽器之間的一些不兼容特性。類似於Dojo這樣的工具集會盡最大努力幫助開發者擺脫這么多問題的困擾,但當開發者面對新問題時還是不可避免地會遇到很多麻煩。
Dojo開發者和用戶可以採取很多方式去解決問題並加快腳步,可以閱讀本書,也可以求助於社區,甚至還可以尋求SitePen這樣的商業公司的幫助。
Dojo已經獲得了成功並在茁壯成長,這是由其透明和開放的進程所決定的。所有代碼都基於AFL和BSD協定,這兩個協定的目的在於讓廣大用戶能更好地使用而不是限制其使用。
很多個人與公司都對Dojo做出了巨大的貢獻,如AOL、Google、IBM、Nexaweb、Renkoo、SitePen、Sun及WaveMaker等。我們有一個嚴格但低門檻的貢獻政策(contribution policy),它要求所有貢獻的原始碼都要通過一個貢獻協定協定(contributor License Agreement),這樣就能保證現在和將來對Dojo地使用不會導致法律或專利上的問題。
相對於其他工具集,我們進行了更多的創新和試驗,在DojoX中引入的新特性已經遙遙領先於其他工具集。
我與James Harmon相識在一次會議上,那時他正在進行關於Dojo的講座。James對Dojo深入淺出地介紹非常精彩。Alex Russell和我總是想面面俱到地將Dojo介紹給別人,而James卻能將複雜的主題分解為易於理解的概念,這樣人們就能快速掌握Dojo了。
本書同樣以清晰明了的方式介紹了如何使用Dojo輕鬆創建Web套用和Web站點,即使開發者不是JavaScript專家也沒有關係,憑藉Dojo Toolkit,他們可以快速且高效地進行開發。Dylan Schiemann
CEO,SitePen
聯合創始人,Dojo Toolkit

【致謝】

只把我的名字列在本書的封面上顯得太不合時宜了。本書是集體智慧的結晶,我對為本書作出貢獻的所有人表示深深地敬意。首先,感謝本書的編輯Debra Williams Cauley,他以其專業的知識指導我完成本書的編寫,同時還給予我很多建議。
感謝Prentice-Hall的Debra團隊,包括直接與我打交道的Chelsey Marti、Chrissy White及Michael Thurston,還有那些幕後工作者。Eric Foster-Johnson也為本書提出了很多有價值的建議。
要是沒有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開發者進行培訓。
本書的Web站點為:http://www.ObjectTrainingGroup.com/dojobook。

【目錄】

譯者序

第一部分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.1CSS選擇器
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高級日誌

相關詞條

相關搜尋

熱門詞條

聯絡我們