商品簡介
作者簡介
名人/編輯推薦
序
目次
書摘/試閱
相關商品
商品簡介
《Ext JS權威指南》有兩大特點:第一,授人以魚,根據Ext JS的構成體系全面系統地講解了其開發方法與技巧,每個知識點都輔之以翔實的案例,同時包含大量最佳實踐,適合系統學習和開發參考;第二,授人以漁,宏觀上對Ext JS的整體架構進行了分析,微觀上則通過源代碼深刻揭示了Ext JS的工作機制與原理,對于想了解Ext JS工作原理和在開發中碰到疑難問題的讀者尤為有幫助。
全書一共22章:第1章簡要介紹了學習Ext JS必備的基礎知識、JSON、Ext JS 4的新特性,以及其開發工具的獲取、安裝與配置;第2章介紹了Ext JS 4的獲取、Ext JS庫的配置與使用、語法、本地化,以及一個經典的入門示例;第3章詳細講解了調試的工具及技巧,這是本書的重要內容,希望所有Web開發者都能掌握;第4章全面介紹了Ext JS的基礎架構;第5~9章分別講解了Ext JS的事件及其應用、選擇器與DOM操作、數據交互、模板與組件、容器、面板、布局與視圖;第10章和第11章分別詳細介紹了重構后的Gird和與Gird同源的樹;第12~16章分別講解了表單、窗口、按鈕、菜單、工具條、圖形、圖表,以及其他組件和實用功能;第17~19章分別介紹了Ext.Direct、動畫功能和拖放功能;第20~22章則分別講解了擴展與插件、主題開發、MVC應用的架構。
全書一共22章:第1章簡要介紹了學習Ext JS必備的基礎知識、JSON、Ext JS 4的新特性,以及其開發工具的獲取、安裝與配置;第2章介紹了Ext JS 4的獲取、Ext JS庫的配置與使用、語法、本地化,以及一個經典的入門示例;第3章詳細講解了調試的工具及技巧,這是本書的重要內容,希望所有Web開發者都能掌握;第4章全面介紹了Ext JS的基礎架構;第5~9章分別講解了Ext JS的事件及其應用、選擇器與DOM操作、數據交互、模板與組件、容器、面板、布局與視圖;第10章和第11章分別詳細介紹了重構后的Gird和與Gird同源的樹;第12~16章分別講解了表單、窗口、按鈕、菜單、工具條、圖形、圖表,以及其他組件和實用功能;第17~19章分別介紹了Ext.Direct、動畫功能和拖放功能;第20~22章則分別講解了擴展與插件、主題開發、MVC應用的架構。
作者簡介
黃燈橋(網名:上將軍),資深Web技術專家,擁有10余年工作經驗,一直致力于Web開發框架的研究,近年來醉心于Ext JS框架的開發與推廣,撰寫了大量關于Ext JS開發相關的教程,是社區公認的先鋒和布道者,與Sencha 和Ext JS的官方開發團隊有十分緊密的聯系。著有經典著作《JavaScript凌厲開發——Ext詳解與實踐》和《Ext JS高級程序設計》。
他不僅精通VB、Delphi和C++等傳統的面向對象技術,而且還擅長ASP.NET、PHP和Java等Web開發技術。目前重點關注Sencha Touch、JQuery UI、HTML 5、CSS 3以及NoSQL數據庫等前沿技術。活躍于CSDN(博客專家)等各大技術社區,在社區內知名度極高,深受網友歡迎。
他不僅精通VB、Delphi和C++等傳統的面向對象技術,而且還擅長ASP.NET、PHP和Java等Web開發技術。目前重點關注Sencha Touch、JQuery UI、HTML 5、CSS 3以及NoSQL數據庫等前沿技術。活躍于CSDN(博客專家)等各大技術社區,在社區內知名度極高,深受網友歡迎。
名人/編輯推薦
Ext JS領域的集大成之作,全面系統地講解Ext JS的開發方法與技巧;包含大量案例和最佳實踐,系統學習和開發參考必備
更多精彩好書推薦,請點擊以下圖片查看:
序
前言:
近一段時間,隨著HTML 5和CSS 3的逐步升溫,瀏覽器大戰進行得如火如荼,而開發人員最關心的是JavaScript框架在HTML 5和CSS 3的大潮下會走向何方。
隨著iPhone 4S的出現,手機大戰也進行得如火如荼。目前的情況是,不但手機系統進行著混戰,手機應用的框架也在進行混戰。
應該說Ext公司在這方面觸覺是很敏銳的,它選擇合并,將公司更改為Sencha,并通過Sencha加入到手機框架大戰中。本以為Ext JS會止步于Ext JS 3.3,想不到Sencha在手機框架中站穩腳跟后,2011年又推出了Ext JS 4.0,對這個頗受歡迎的框架進行了更多的革新,加入了很多HTML 5和CSS 3的元素。
在過渡到HTML 5和CSS 3的時期,Ext JS框架能繼續發展,對開發人員來說是天大的喜事。因為在HTML 5和CSS 3還沒完全一統江湖的時候,開發人員要繼續使用目前的開發工具進行開發。而Ext JS 3暴露出來的問題也需要不斷修正和更新,這正是Ext JS 4需要解決的。
很不錯,Ext JS 4終于來了。
為什么寫這本書
從Ext JS 2.0開始,尤其是Ext JS 3.0推出后,使用Ext JS的開發人員越來越多。而隨著Ext JS 4的推出,估計會掀起一個新的技術學習熱潮。Ext JS 4進行了架構的調整,做了一系列的規范化,例如類名的規范化、UI組件的渲染的規范化等,還重構了不少UI組件,這些對熟悉Ext JS 3的開發人員來說都要重新學習。對于新入門的讀者,更是急需Ext JS 4方面的書籍來指導。因此,筆者決定寫一本介紹Ext JS 4的書。
目前市面上介紹Ext JS的圖書基本都是以應用為主,深入介紹Ext JS的很少,這也是筆者寫本書的一個緣由。在本書中,不但介紹了如何使用Ext JS 4,還深入Ext JS 4的源代碼,通過抽絲剝繭的分析,讓大家對Ext JS 4有更深入的理解,從而使開發人員在使用Ext JS 4時少走彎路。
本書除了深入介紹Ext JS 4外,還有一個主要目的,就是希望大家能掌握Firebug這個工具,學會如何使用Firebug去分析JavaScript代碼的運行過程,提高分析能力及調試水平,減少bug的發生和調試時間。
本書的特色
筆者在Ext JS的學習和交流中發現,很多使用者對Ext JS的整體架構不太熟悉,造成對應用中的一些問題混淆不清,從而導致應用中出現或多或少的錯誤。例如,對Ext JS的三層架構不熟悉,造成在UI中找數據的問題。而目前各類Ext JS 書籍中很少提及這些方面,所以,針對使用者普遍存在的問題和容易混淆的地方,本書通過原理講解和示例講述"為什么是這樣的"以及"為什么要這樣做"。
本書的主要特色就是通過源代碼的講解,讓讀者明白Ext JS的類是如何運作的,然后通過運行原理及實戰來學習如何使用這些類,并循序漸進地學習Ext JS。
本書面向的讀者
本書介紹了Ext JS 4中的幾乎所有功能,并對其源代碼進行了分析和講解。因此,讀者不但可以學習如何使用Ext JS 4,還可以通過閱讀源代碼加深對Ext JS的理解,并從源代碼中吸取別人的經驗,提高自己的腳本編寫能力。只要讀者具備Web編程的基礎,閱讀本書的內容就不會有什么問題。
如果讀者是新手,就應根據第1章關于學習Ext JS必需的基礎知識一節的建議,去閱讀相應的書籍,掌握Web編程的基礎知識,尤其是JavaScript、HTML和CSS的相關知識。當然,能了解面向對象、三層架構等知識對閱讀本書是相當有幫助的。
如果讀者對Ext JS有一定基礎,則可通過本書深入了解Ext JS的運行原理,加深對Ext JS 的認識,尤其是對Ext JS新的開發框架的認識。
本書示例中的服務器端代碼,使用C#和Java兩種語言編寫,所以只要熟悉這兩種語言中的一種,對閱讀本書都會有很大幫助。不過,Ext JS是一個基于客戶端的JavaScript框架,對于使用何種服務器端開發語言沒有要求,因此即使是不懂C#和Java語言的讀者,閱讀本書也不會有太多困難。
使用本書的要求
在使用本書的示例時,最好安裝Firefox 4.0以上版本,并且安裝Firebug 擴展。
要運行本書中帶有服務器端代碼的示例,需要:
IIS或Tomcat 7.0
.Net :Visual Studio 2010
Java:Eclipse Helios Service Release 2或Spket 1.6.18
SQL Server 2005
如何閱讀本書
本書是采用循序漸進的方式來介紹Ext JS 4的,各章之間會有一定的關聯,因此建議讀者按章節的編排順序逐章閱讀。本書中有些示例是在Firebug中示范的, 所以最好在自己的機器上安裝好Firefox和Firebug,以備使用。這樣做的目的是讓大家在閱讀過程中熟悉Firebug的一些調試技巧,這些技巧在調試Ext JS時是相當有用的。例如,有初學者曾咨詢為什么在Grid中顯示不了數據,查了很久都查不到原因,讓筆者幫忙看一下代碼,筆者讓他先用Firebug查看Store是否已提交數據請求,在Firebug網絡面板中,他看到請求已發送,但是返回的是服務器端代碼錯誤,最后查到僅僅是"將公有方法設置成私有方法"這樣簡單的修正。在很多時候,就是這樣的錯誤造成大麻煩,所以筆者建議多使用Firebug,好的工具可以事半功倍。
本書秉承實踐是最好的老師的精神,立足于"自己動手,豐衣足食"的原則,因而希望讀者在閱讀本書的時候,能親自動手去實踐一下。Let`s do it!
近一段時間,隨著HTML 5和CSS 3的逐步升溫,瀏覽器大戰進行得如火如荼,而開發人員最關心的是JavaScript框架在HTML 5和CSS 3的大潮下會走向何方。
隨著iPhone 4S的出現,手機大戰也進行得如火如荼。目前的情況是,不但手機系統進行著混戰,手機應用的框架也在進行混戰。
應該說Ext公司在這方面觸覺是很敏銳的,它選擇合并,將公司更改為Sencha,并通過Sencha加入到手機框架大戰中。本以為Ext JS會止步于Ext JS 3.3,想不到Sencha在手機框架中站穩腳跟后,2011年又推出了Ext JS 4.0,對這個頗受歡迎的框架進行了更多的革新,加入了很多HTML 5和CSS 3的元素。
在過渡到HTML 5和CSS 3的時期,Ext JS框架能繼續發展,對開發人員來說是天大的喜事。因為在HTML 5和CSS 3還沒完全一統江湖的時候,開發人員要繼續使用目前的開發工具進行開發。而Ext JS 3暴露出來的問題也需要不斷修正和更新,這正是Ext JS 4需要解決的。
很不錯,Ext JS 4終于來了。
為什么寫這本書
從Ext JS 2.0開始,尤其是Ext JS 3.0推出后,使用Ext JS的開發人員越來越多。而隨著Ext JS 4的推出,估計會掀起一個新的技術學習熱潮。Ext JS 4進行了架構的調整,做了一系列的規范化,例如類名的規范化、UI組件的渲染的規范化等,還重構了不少UI組件,這些對熟悉Ext JS 3的開發人員來說都要重新學習。對于新入門的讀者,更是急需Ext JS 4方面的書籍來指導。因此,筆者決定寫一本介紹Ext JS 4的書。
目前市面上介紹Ext JS的圖書基本都是以應用為主,深入介紹Ext JS的很少,這也是筆者寫本書的一個緣由。在本書中,不但介紹了如何使用Ext JS 4,還深入Ext JS 4的源代碼,通過抽絲剝繭的分析,讓大家對Ext JS 4有更深入的理解,從而使開發人員在使用Ext JS 4時少走彎路。
本書除了深入介紹Ext JS 4外,還有一個主要目的,就是希望大家能掌握Firebug這個工具,學會如何使用Firebug去分析JavaScript代碼的運行過程,提高分析能力及調試水平,減少bug的發生和調試時間。
本書的特色
筆者在Ext JS的學習和交流中發現,很多使用者對Ext JS的整體架構不太熟悉,造成對應用中的一些問題混淆不清,從而導致應用中出現或多或少的錯誤。例如,對Ext JS的三層架構不熟悉,造成在UI中找數據的問題。而目前各類Ext JS 書籍中很少提及這些方面,所以,針對使用者普遍存在的問題和容易混淆的地方,本書通過原理講解和示例講述"為什么是這樣的"以及"為什么要這樣做"。
本書的主要特色就是通過源代碼的講解,讓讀者明白Ext JS的類是如何運作的,然后通過運行原理及實戰來學習如何使用這些類,并循序漸進地學習Ext JS。
本書面向的讀者
本書介紹了Ext JS 4中的幾乎所有功能,并對其源代碼進行了分析和講解。因此,讀者不但可以學習如何使用Ext JS 4,還可以通過閱讀源代碼加深對Ext JS的理解,并從源代碼中吸取別人的經驗,提高自己的腳本編寫能力。只要讀者具備Web編程的基礎,閱讀本書的內容就不會有什么問題。
如果讀者是新手,就應根據第1章關于學習Ext JS必需的基礎知識一節的建議,去閱讀相應的書籍,掌握Web編程的基礎知識,尤其是JavaScript、HTML和CSS的相關知識。當然,能了解面向對象、三層架構等知識對閱讀本書是相當有幫助的。
如果讀者對Ext JS有一定基礎,則可通過本書深入了解Ext JS的運行原理,加深對Ext JS 的認識,尤其是對Ext JS新的開發框架的認識。
本書示例中的服務器端代碼,使用C#和Java兩種語言編寫,所以只要熟悉這兩種語言中的一種,對閱讀本書都會有很大幫助。不過,Ext JS是一個基于客戶端的JavaScript框架,對于使用何種服務器端開發語言沒有要求,因此即使是不懂C#和Java語言的讀者,閱讀本書也不會有太多困難。
使用本書的要求
在使用本書的示例時,最好安裝Firefox 4.0以上版本,并且安裝Firebug 擴展。
要運行本書中帶有服務器端代碼的示例,需要:
IIS或Tomcat 7.0
.Net :Visual Studio 2010
Java:Eclipse Helios Service Release 2或Spket 1.6.18
SQL Server 2005
如何閱讀本書
本書是采用循序漸進的方式來介紹Ext JS 4的,各章之間會有一定的關聯,因此建議讀者按章節的編排順序逐章閱讀。本書中有些示例是在Firebug中示范的, 所以最好在自己的機器上安裝好Firefox和Firebug,以備使用。這樣做的目的是讓大家在閱讀過程中熟悉Firebug的一些調試技巧,這些技巧在調試Ext JS時是相當有用的。例如,有初學者曾咨詢為什么在Grid中顯示不了數據,查了很久都查不到原因,讓筆者幫忙看一下代碼,筆者讓他先用Firebug查看Store是否已提交數據請求,在Firebug網絡面板中,他看到請求已發送,但是返回的是服務器端代碼錯誤,最后查到僅僅是"將公有方法設置成私有方法"這樣簡單的修正。在很多時候,就是這樣的錯誤造成大麻煩,所以筆者建議多使用Firebug,好的工具可以事半功倍。
本書秉承實踐是最好的老師的精神,立足于"自己動手,豐衣足食"的原則,因而希望讀者在閱讀本書的時候,能親自動手去實踐一下。Let`s do it!
目次
前言
第1章 Ext JS 4開發入門
1.1 學習Ext JS必需的基礎知識
1.2 JSON概述
1.2.1 認識JSON
1.2.2 JSON的結構
1.2.3 JSON的例子
1.2.4 在JavaScript中使用JSON
1.2.5 在.NET中使用JSON
1.2.6 在Java中使用JSON
1.2.7 更多有關JSON的信息
1.3 Ext JS 4概述
1.4 Ext JS的開發工具的獲取、安裝與配置介紹
1.4.1 Ext Designer
1.4.2 在Visual Studio中實現智能提示
1.4.3 Spket
1.4.4 在Eclipse中實現智能提示
1.5 如何獲得幫助
1.6 本章小結
第2章 從"Hello World"開始
2.1 獲取Ext JS 4
2.2 配置使用Ext JS庫
2.3 編寫"Hello World"程序
2.4 關于Ext.onReady
2.5 關于Ext.BLANK_IMAGE_URL
2.6 關于字體
2.7 Ext JS 4語法
2.8 本地化
2.9 為本書示例準備一個模板
2.10 本章小結
第3章 調試工具及技巧
3.1 使用Firebug進行調試
3.2 在IE中調試
3.2.1 使用Debugbar和Companion.js調試
3.2.2 使用IEtester測試
3.2.3 在IE 8或IE 9中調試
3.3 在Chrome中調試
3.4 調試工具的總結
3.5 調試技巧
3.6 本章小結
第4章 Ext JS的基礎架構
4.1 Ext JS框架的命名空間:Ext
4.1.1 概述
4.1.2 apply和applyIf方法
4.1.3 不推薦的extend方法
4.1.4 數據及其類型檢測
4.1.5 其他的基礎方法
4.2 為框架順利運行提供支持
4.2.1 平臺檢測工具:Ext.is
4.2.2 當前運行環境檢測工具:Ext.supports
4.3 Ext JS的靜態方法
4.3.1 概述
4.3.2 Ext.Object中的靜態方法
4.3.3 Ext.Function中的靜態方法
4.3.4 Ext.Array中的靜態方法
4.3.5 Ext.Error中的靜態方法
4.4 深入了解類的創建及管理
4.4.1 開始創建類
4.4.2 創建類的類:Ext.Class
4.4.3 所有繼承類的基類:Ext.Base
4.4.4 實現動態加載:Ext.Loader
4.4.5 管理類的類:Ext.ClassManager
4.4.6 類創建的總結
4.5 動態加載的路徑設置
4.6 綜合實例:頁面計算器
4.7 本章小結
第5章 Ext JS的事件及其應用
5.1 概述
5.2 瀏覽器事件
5.2.1 綁定瀏覽器事件的過程:Ext.EventManager
5.2.2 封裝瀏覽器事件:Ext.EventObject
5.2.3 移除瀏覽器事件
5.3 內部事件
5.3.1 內部事件對象:Ext.util.Event
5.3.2 為組件添加事件接口:Ext.util.Observable
5.3.3 為組件綁定事件
5.3.4 內部事件的觸發過程
5.3.5 移除事件
5.4 特定功能的事件對象
5.4.1 延時任務:Ext.util.DelayedTask
5.4.2 一般任務:Ext.util.TaskRunner與Ext.TaskManager
5.4.3 封裝好的單擊事件:Ext.util.ClickRepeater
5.5 鍵盤事件
5.5.1 為元素綁定鍵盤事件:Ext.util.KeyMap
5.5.2 鍵盤導航:Ext.util.KeyNav
5.6 綜合實例:股票數據的實時更新
5.7 本章小結
第6章 選擇器與DOM操作
6.1 Ext JS的選擇器:Ext.DomQuery
6.1.1 選擇器的作用
6.1.2 使用Ext.query選擇頁面元素
6.1.3 基本選擇符
6.1.4 屬性選擇符
6.1.5 CSS屬性值選擇符
6.1.6 偽類選擇符
6.1.7 擴展選擇器
6.1.8 Ext.DomQuery的使用方法
6.1.9 Ext JS選擇器的總結
6.2 獲取單一元素:Ext.dom.Element
6.2.1 從錯誤開始
6.2.2 使用Ext.get獲取元素
6.2.3 使用Ext.fly獲取元素
6.2.4 使用Ext.getDom獲取元素
6.2.5 獲取元素的總結
6.3 元素生成器:Ext.dom.Helper
6.3.1 概述
6.3.2 使用createHtml或markup方法生成HTML代碼8
6.3.3 使用createDOM方法生成DOM對象
6.3.4 使用createTemplate方法創建模板
6.3.5 Helper對象的使用方法
6.4 元素的操作
6.5 獲取元素集合:Ext.CompositeElementLite與Ext.CompositeElement
6.5.1 使用Ext.select獲取元素集合
6.5.2 Ext.dom.CompositeElement與Ext.dom.CompositeElementLite的區別
6.5.3 操作元素集合
6.6 綜合實例:可折疊的面板Accordion
6.7 本章小結
第7章 數據交互
7.1 數據交互基礎
7.1.1 Ajax概述
7.1.2 封裝Ajax:Ext.data.Connection與Ext.Ajax
7.1.3 使用Ajax
7.1.4 跨域獲取數據:Ext.data.JsonP
7.1.5 為Element對象提供加載功能:Ext.ElementLoader
7.1.6 為組件提供加載功能:Ext.ComponentLoader
7.2 代理
7.2.1 代理概述
7.2.2 基本的代理:Ext.data.proxy.Proxy
7.2.3 進行批量操作:Ext.data.Batch與Ext.data.Operation
7.2.4 服務器端代理:Ext.data.proxy.Server
7.2.5 使用Ajax處理數據的代理:Ext.data.proxy.Ajax與Ext.data.proxy.Rest
7.2.6 跨域處理數據的代理:Ext.data.proxy.JsonP
7.2.7 為Ext.Direct服務的代理:Ext.data.proxy.Direct
7.2.8 客戶端代理:Ext.data.proxy.Client
7.2.9 從變量中提取數據的代理:Ext.data.proxy.Memory
7.2.10 使用瀏覽器存儲的代理:Ext.data.WebStorageProxy、Ext.data. SessionStorageProxy和Ext.data.proxy.LocalStorage
7.3 讀取和格式化數據
7.3.1 概述
7.3.2 數據的轉換過程:Ext.data.reader.Xml、Ext.data.reader.Json和Ext.data.reader.Array
7.3.3 Reader對象的配置項
7.3.4 格式化提交數據:Ext.data.writer.Writer、Ext.data.writer.JSON和Ext.data. writer.Xml
7.3.5 Writer對象的配置項
7.4 數據模型
7.4.1 概述
7.4.2 數據類型及排序類型:Ext.data.Types與Ext.data.SortTypes
7.4.3 數據模型的骨架——字段:Ext.data.Field
7.4.4 數據集:Ext.util.AbstractMixedCollection與Ext.util.MixedCollection
7.4.5 數據驗證及錯誤處理:Ext.data.validations與Ext.data.Errors
7.4.6 模型的關系:Ext.data.Association、Ext.data.HasManyAssociation和Ext.data.BelongsToAssociation
7.4.7 管理數據模型:Ext.AbstractManager與Ext.ModelManager
7.4.8 定義數據模型:Ext.data.Model
7.4.9 數據模型的定義過程
7.4.10 數據模型的創建
7.4.11 數據模型的配置項、屬性和方法
7.5 Store
7.5.1 概述
7.5.2 Store對象的實例化過程
7.5.3 TreeStore對象的實例化過程
7.5.4 Ext.data.Store加載數據的方法
7.5.5 Ext.data.TreeStore加載數據的方法
7.5.6 Store的配置項
7.5.7 Store的分頁
7.5.8 Store的排序:Ext.util.Sorter與Ext.util.Sortable
7.5.9 Store的過濾:Ext.util.Filter
7.5.10 Store的分組:Ext.util.Grouper
7.5.11 樹節點:Ext.data.NodeInterface與Ext.data.Tree
7.5.12 Store的方法
7.5.13 Store的事件
7.5.14 Store管理器:Ext.data.StoreManager
7.6 綜合實例
7.6.1 遠程讀取JSON數據
7.6.2 讀取XML數據
7.6.3 Store的數據操作
7.7 本章小結
第8章 模板與組件基礎
8.1 模板
8.1.1 模板概述
8.1.2 Ext.Template的創建與編譯
8.1.3 格式化輸出數據:Ext.String、Ext.Number、Ext.Date和Ext.util.Format
8.1.4 超級模板:Ext.XTemplate(包括Ext.XTemplateParser和Ext.XTemplateCompiler)
8.1.5 模板的方法
8.2 組件的基礎知識
8.2.1 概述
8.2.2 組件類的整體架構
8.2.3 布局類的整體架構
8.2.4 組件的創建流程
8.2.5 常用的組件配置項、屬性、方法和事件
8.3 為組件添加功能
8.3.1 為元素添加陰影:Ext.Shadow與Ext.ShadowPool
8.3.2 為組件提供陰影和shim功能:Ext.Layer
8.3.3 讓組件實現浮動功能:Ext.util.Floating
8.3.4 記錄組件狀態:Ext.state.Stateful
8.3.5 實現調整大小功能:Ext.resizer.Resizer與Ext.resizer.ResizeTracker
8.3.6 為組件提供拖動功能:Ext.util.ComponentDragger
8.3.7 為組件實現動畫功能:Ext.util.Animate
8.3.8 其他的組件輔助功能類
8.4 組件的管理
8.4.1 組件管理及查詢:Ext.ComponentManager與Ext.ComponentQuery
8.4.2 焦點管理:Ext.FocusManager
8.4.3 z-order管理:Ext.ZindexManager與Ext.WindowManager
8.4.4 狀態管理:Ext.state.Manager、Ext.state.Provider、Ext.state.Local-StorageProvider和Ext.state.CookieProvider
8.5 綜合實例
8.5.1 使用子模板
8.5.2 遞歸調用模板
8.6 本章小結
第9章 容器、面板、布局和視圖
9.1 容器與布局的關系
9.2 容器
9.2.1 容器的創建過程:Ext.container.AbstractContainer與Ext.container.Container
9.2.2 Ext.container.AbstractContainer和Ext.container.Container的配置項、屬性、方法和事件
9.2.3 將body元素作為容器:Ext.container.Viewport
9.3 面板
9.3.1 面板的結構
9.3.2 構件的放置:dockedItems
9.3.3 面板標題欄構件:Ext.panel.Header與Ext.panel.Tool
9.3.4 記錄和恢復面板屬性:Ext.util.Memento
9.3.5 面板常用的配置項、方法和事件
9.4 布局
9.4.1 布局概述
9.4.2 布局的運行流程:Ext.layout.Layout
9.4.3 容器類布局基類:Ext.layout.container.Container
9.4.4 盒子布局、垂直布局與水平布局:Ext.layout.container.Box、Ext.layout.container.VBox與Ext.layout.container.HBox
9.4.5 為盒子模型提供調整大小的功能:Ext.resizer.Splitter
9.4.6 手風琴布局:Ext.layout.container.Accordion
9.4.7 錨固布局:Ext.layout.container.Anchor
9.4.8 絕對定位布局:Ext.layout.container.Absolute
9.4.9 邊框布局:Ext.layout.container.Border
9.4.10 自動布局:Ext.layout.container.Auto
9.4.11 表格布局:Ext.layout.container.Table
9.4.12 列布局:Ext.layout.container.Column
9.4.13 自適應布局:Ext.layout.container.AbstractFit與Ext.layout.container.Fit
9.4.14 卡片布局:Ext.layout.container.AbstractCard與Ext.layout.container.Card
9.5 標簽面板
9.5.1 標簽面板的構成及其運行流程:Ext.tab.Panel、Ext.tab.Bar與Ext.tab.Tab
9.5.2 標簽面板的配置項、屬性、方法和事件
9.5.3 使用標簽頁
9.5.4 可重用的標簽頁
9.6 視圖與選擇模型
9.6.1 視圖與選擇模型概述
9.6.2 視圖的運行流程:Ext.view.AbstractView與Ext.view.View
9.6.3 選擇模型的工作流程
9.6.4 選擇模型的配置項、屬性、方法和事件
9.6.5 視圖的配置項、屬性、方法和事件
9.6.6 使用視圖
9.7 頁面布局設計
9.8 綜合實例
9.8.1 布局設計實例:仿Eclipse界面
9.8.2 在單頁面應用中使用卡片布局實現"頁面"切換
9.9 本章小結
……
第22章 MVC應用架構
22.1 MVC應用架構的構成及工作流程
22.1.1 構成
22.1.2 控制器的工作流程:Ext.app.Controller
22.1.3 Application對象的工作流程
22.2 一步一步實現MVC框架
22.2.1 概述
22.2.2 創建目錄
22.2.3 創建首頁
22.2.4 創建啟動腳本:app.js
22.2.5 定義登錄對話框
22.2.6 創建應用腳本:Application.js
22.2.7 創建Viewport視圖
22.2.8 菜單視圖及控制器
22.2.9 實現訂單管理
22.2.10 實現產品管理
22.2.11 示例效果
22.3 本章小結
附錄 簡寫類名與Ext JS類名對照表
第1章 Ext JS 4開發入門
1.1 學習Ext JS必需的基礎知識
1.2 JSON概述
1.2.1 認識JSON
1.2.2 JSON的結構
1.2.3 JSON的例子
1.2.4 在JavaScript中使用JSON
1.2.5 在.NET中使用JSON
1.2.6 在Java中使用JSON
1.2.7 更多有關JSON的信息
1.3 Ext JS 4概述
1.4 Ext JS的開發工具的獲取、安裝與配置介紹
1.4.1 Ext Designer
1.4.2 在Visual Studio中實現智能提示
1.4.3 Spket
1.4.4 在Eclipse中實現智能提示
1.5 如何獲得幫助
1.6 本章小結
第2章 從"Hello World"開始
2.1 獲取Ext JS 4
2.2 配置使用Ext JS庫
2.3 編寫"Hello World"程序
2.4 關于Ext.onReady
2.5 關于Ext.BLANK_IMAGE_URL
2.6 關于字體
2.7 Ext JS 4語法
2.8 本地化
2.9 為本書示例準備一個模板
2.10 本章小結
第3章 調試工具及技巧
3.1 使用Firebug進行調試
3.2 在IE中調試
3.2.1 使用Debugbar和Companion.js調試
3.2.2 使用IEtester測試
3.2.3 在IE 8或IE 9中調試
3.3 在Chrome中調試
3.4 調試工具的總結
3.5 調試技巧
3.6 本章小結
第4章 Ext JS的基礎架構
4.1 Ext JS框架的命名空間:Ext
4.1.1 概述
4.1.2 apply和applyIf方法
4.1.3 不推薦的extend方法
4.1.4 數據及其類型檢測
4.1.5 其他的基礎方法
4.2 為框架順利運行提供支持
4.2.1 平臺檢測工具:Ext.is
4.2.2 當前運行環境檢測工具:Ext.supports
4.3 Ext JS的靜態方法
4.3.1 概述
4.3.2 Ext.Object中的靜態方法
4.3.3 Ext.Function中的靜態方法
4.3.4 Ext.Array中的靜態方法
4.3.5 Ext.Error中的靜態方法
4.4 深入了解類的創建及管理
4.4.1 開始創建類
4.4.2 創建類的類:Ext.Class
4.4.3 所有繼承類的基類:Ext.Base
4.4.4 實現動態加載:Ext.Loader
4.4.5 管理類的類:Ext.ClassManager
4.4.6 類創建的總結
4.5 動態加載的路徑設置
4.6 綜合實例:頁面計算器
4.7 本章小結
第5章 Ext JS的事件及其應用
5.1 概述
5.2 瀏覽器事件
5.2.1 綁定瀏覽器事件的過程:Ext.EventManager
5.2.2 封裝瀏覽器事件:Ext.EventObject
5.2.3 移除瀏覽器事件
5.3 內部事件
5.3.1 內部事件對象:Ext.util.Event
5.3.2 為組件添加事件接口:Ext.util.Observable
5.3.3 為組件綁定事件
5.3.4 內部事件的觸發過程
5.3.5 移除事件
5.4 特定功能的事件對象
5.4.1 延時任務:Ext.util.DelayedTask
5.4.2 一般任務:Ext.util.TaskRunner與Ext.TaskManager
5.4.3 封裝好的單擊事件:Ext.util.ClickRepeater
5.5 鍵盤事件
5.5.1 為元素綁定鍵盤事件:Ext.util.KeyMap
5.5.2 鍵盤導航:Ext.util.KeyNav
5.6 綜合實例:股票數據的實時更新
5.7 本章小結
第6章 選擇器與DOM操作
6.1 Ext JS的選擇器:Ext.DomQuery
6.1.1 選擇器的作用
6.1.2 使用Ext.query選擇頁面元素
6.1.3 基本選擇符
6.1.4 屬性選擇符
6.1.5 CSS屬性值選擇符
6.1.6 偽類選擇符
6.1.7 擴展選擇器
6.1.8 Ext.DomQuery的使用方法
6.1.9 Ext JS選擇器的總結
6.2 獲取單一元素:Ext.dom.Element
6.2.1 從錯誤開始
6.2.2 使用Ext.get獲取元素
6.2.3 使用Ext.fly獲取元素
6.2.4 使用Ext.getDom獲取元素
6.2.5 獲取元素的總結
6.3 元素生成器:Ext.dom.Helper
6.3.1 概述
6.3.2 使用createHtml或markup方法生成HTML代碼8
6.3.3 使用createDOM方法生成DOM對象
6.3.4 使用createTemplate方法創建模板
6.3.5 Helper對象的使用方法
6.4 元素的操作
6.5 獲取元素集合:Ext.CompositeElementLite與Ext.CompositeElement
6.5.1 使用Ext.select獲取元素集合
6.5.2 Ext.dom.CompositeElement與Ext.dom.CompositeElementLite的區別
6.5.3 操作元素集合
6.6 綜合實例:可折疊的面板Accordion
6.7 本章小結
第7章 數據交互
7.1 數據交互基礎
7.1.1 Ajax概述
7.1.2 封裝Ajax:Ext.data.Connection與Ext.Ajax
7.1.3 使用Ajax
7.1.4 跨域獲取數據:Ext.data.JsonP
7.1.5 為Element對象提供加載功能:Ext.ElementLoader
7.1.6 為組件提供加載功能:Ext.ComponentLoader
7.2 代理
7.2.1 代理概述
7.2.2 基本的代理:Ext.data.proxy.Proxy
7.2.3 進行批量操作:Ext.data.Batch與Ext.data.Operation
7.2.4 服務器端代理:Ext.data.proxy.Server
7.2.5 使用Ajax處理數據的代理:Ext.data.proxy.Ajax與Ext.data.proxy.Rest
7.2.6 跨域處理數據的代理:Ext.data.proxy.JsonP
7.2.7 為Ext.Direct服務的代理:Ext.data.proxy.Direct
7.2.8 客戶端代理:Ext.data.proxy.Client
7.2.9 從變量中提取數據的代理:Ext.data.proxy.Memory
7.2.10 使用瀏覽器存儲的代理:Ext.data.WebStorageProxy、Ext.data. SessionStorageProxy和Ext.data.proxy.LocalStorage
7.3 讀取和格式化數據
7.3.1 概述
7.3.2 數據的轉換過程:Ext.data.reader.Xml、Ext.data.reader.Json和Ext.data.reader.Array
7.3.3 Reader對象的配置項
7.3.4 格式化提交數據:Ext.data.writer.Writer、Ext.data.writer.JSON和Ext.data. writer.Xml
7.3.5 Writer對象的配置項
7.4 數據模型
7.4.1 概述
7.4.2 數據類型及排序類型:Ext.data.Types與Ext.data.SortTypes
7.4.3 數據模型的骨架——字段:Ext.data.Field
7.4.4 數據集:Ext.util.AbstractMixedCollection與Ext.util.MixedCollection
7.4.5 數據驗證及錯誤處理:Ext.data.validations與Ext.data.Errors
7.4.6 模型的關系:Ext.data.Association、Ext.data.HasManyAssociation和Ext.data.BelongsToAssociation
7.4.7 管理數據模型:Ext.AbstractManager與Ext.ModelManager
7.4.8 定義數據模型:Ext.data.Model
7.4.9 數據模型的定義過程
7.4.10 數據模型的創建
7.4.11 數據模型的配置項、屬性和方法
7.5 Store
7.5.1 概述
7.5.2 Store對象的實例化過程
7.5.3 TreeStore對象的實例化過程
7.5.4 Ext.data.Store加載數據的方法
7.5.5 Ext.data.TreeStore加載數據的方法
7.5.6 Store的配置項
7.5.7 Store的分頁
7.5.8 Store的排序:Ext.util.Sorter與Ext.util.Sortable
7.5.9 Store的過濾:Ext.util.Filter
7.5.10 Store的分組:Ext.util.Grouper
7.5.11 樹節點:Ext.data.NodeInterface與Ext.data.Tree
7.5.12 Store的方法
7.5.13 Store的事件
7.5.14 Store管理器:Ext.data.StoreManager
7.6 綜合實例
7.6.1 遠程讀取JSON數據
7.6.2 讀取XML數據
7.6.3 Store的數據操作
7.7 本章小結
第8章 模板與組件基礎
8.1 模板
8.1.1 模板概述
8.1.2 Ext.Template的創建與編譯
8.1.3 格式化輸出數據:Ext.String、Ext.Number、Ext.Date和Ext.util.Format
8.1.4 超級模板:Ext.XTemplate(包括Ext.XTemplateParser和Ext.XTemplateCompiler)
8.1.5 模板的方法
8.2 組件的基礎知識
8.2.1 概述
8.2.2 組件類的整體架構
8.2.3 布局類的整體架構
8.2.4 組件的創建流程
8.2.5 常用的組件配置項、屬性、方法和事件
8.3 為組件添加功能
8.3.1 為元素添加陰影:Ext.Shadow與Ext.ShadowPool
8.3.2 為組件提供陰影和shim功能:Ext.Layer
8.3.3 讓組件實現浮動功能:Ext.util.Floating
8.3.4 記錄組件狀態:Ext.state.Stateful
8.3.5 實現調整大小功能:Ext.resizer.Resizer與Ext.resizer.ResizeTracker
8.3.6 為組件提供拖動功能:Ext.util.ComponentDragger
8.3.7 為組件實現動畫功能:Ext.util.Animate
8.3.8 其他的組件輔助功能類
8.4 組件的管理
8.4.1 組件管理及查詢:Ext.ComponentManager與Ext.ComponentQuery
8.4.2 焦點管理:Ext.FocusManager
8.4.3 z-order管理:Ext.ZindexManager與Ext.WindowManager
8.4.4 狀態管理:Ext.state.Manager、Ext.state.Provider、Ext.state.Local-StorageProvider和Ext.state.CookieProvider
8.5 綜合實例
8.5.1 使用子模板
8.5.2 遞歸調用模板
8.6 本章小結
第9章 容器、面板、布局和視圖
9.1 容器與布局的關系
9.2 容器
9.2.1 容器的創建過程:Ext.container.AbstractContainer與Ext.container.Container
9.2.2 Ext.container.AbstractContainer和Ext.container.Container的配置項、屬性、方法和事件
9.2.3 將body元素作為容器:Ext.container.Viewport
9.3 面板
9.3.1 面板的結構
9.3.2 構件的放置:dockedItems
9.3.3 面板標題欄構件:Ext.panel.Header與Ext.panel.Tool
9.3.4 記錄和恢復面板屬性:Ext.util.Memento
9.3.5 面板常用的配置項、方法和事件
9.4 布局
9.4.1 布局概述
9.4.2 布局的運行流程:Ext.layout.Layout
9.4.3 容器類布局基類:Ext.layout.container.Container
9.4.4 盒子布局、垂直布局與水平布局:Ext.layout.container.Box、Ext.layout.container.VBox與Ext.layout.container.HBox
9.4.5 為盒子模型提供調整大小的功能:Ext.resizer.Splitter
9.4.6 手風琴布局:Ext.layout.container.Accordion
9.4.7 錨固布局:Ext.layout.container.Anchor
9.4.8 絕對定位布局:Ext.layout.container.Absolute
9.4.9 邊框布局:Ext.layout.container.Border
9.4.10 自動布局:Ext.layout.container.Auto
9.4.11 表格布局:Ext.layout.container.Table
9.4.12 列布局:Ext.layout.container.Column
9.4.13 自適應布局:Ext.layout.container.AbstractFit與Ext.layout.container.Fit
9.4.14 卡片布局:Ext.layout.container.AbstractCard與Ext.layout.container.Card
9.5 標簽面板
9.5.1 標簽面板的構成及其運行流程:Ext.tab.Panel、Ext.tab.Bar與Ext.tab.Tab
9.5.2 標簽面板的配置項、屬性、方法和事件
9.5.3 使用標簽頁
9.5.4 可重用的標簽頁
9.6 視圖與選擇模型
9.6.1 視圖與選擇模型概述
9.6.2 視圖的運行流程:Ext.view.AbstractView與Ext.view.View
9.6.3 選擇模型的工作流程
9.6.4 選擇模型的配置項、屬性、方法和事件
9.6.5 視圖的配置項、屬性、方法和事件
9.6.6 使用視圖
9.7 頁面布局設計
9.8 綜合實例
9.8.1 布局設計實例:仿Eclipse界面
9.8.2 在單頁面應用中使用卡片布局實現"頁面"切換
9.9 本章小結
……
第22章 MVC應用架構
22.1 MVC應用架構的構成及工作流程
22.1.1 構成
22.1.2 控制器的工作流程:Ext.app.Controller
22.1.3 Application對象的工作流程
22.2 一步一步實現MVC框架
22.2.1 概述
22.2.2 創建目錄
22.2.3 創建首頁
22.2.4 創建啟動腳本:app.js
22.2.5 定義登錄對話框
22.2.6 創建應用腳本:Application.js
22.2.7 創建Viewport視圖
22.2.8 菜單視圖及控制器
22.2.9 實現訂單管理
22.2.10 實現產品管理
22.2.11 示例效果
22.3 本章小結
附錄 簡寫類名與Ext JS類名對照表
書摘/試閱
第1章 Ext JS 4開發入門
在這一章,我們將介紹一些與Ext JS有關的基礎知識以及Ext JS 4的一些主要變化。從2008年接觸Ext JS到現在,不少初學者咨詢過我,應該怎樣才能學好Ext JS?這是一個很好的問題,每個人的學習方法不同,在學習Ext JS之前的基礎都不同,因而如何學好Ext JS因人而異。不過Ext JS始終是一個JavaScript的框架,有其局限性,掌握了Javascript、HTML和CSS等知識,再加上掌握Ext JS的框架結構,就足夠應付Ext JS的學習了。如果再有點面向對象編程的知識,那就如虎添翼了。下面讓我們開始學習Ext JS之旅。
1.1學習Ext JS必需的基礎知識
1.JavaScript
嗯,這個還用說嗎?Ext JS本來就是一個JavaScript的框架,而且使用Ext JS就需要使用JavaScript語法來開發,需要JavaScript的知識是必然的了。問題的關鍵是,開發人員對JavaScript知識的掌握也有深淺之分。譬如,我碰到一些開發人員,對JavaScript算是很熟悉了,但是不會JSON,不會直接使用JSON對象,在使用Ext JS的過程中,需要使用JSON對象的時候,居然是通過組裝字符串的方式,然后使用eval方法將其轉換為對象來使用的。這就是因為JavaScript學習深度不足造成的。
那么,到底JavaScript要學到多深才能學好Ext JS呢?這個問題也不太好回答。不過以筆者的經驗來說,建議仔細認真地看一次《JavaScript權威指南(第5版)》 和《JavaScript高級程序設計(第2版)》這兩本書,重點關注和理解以下內容:
函數。
變量。
作用域(scope)。
原型模式(prototype)。
閉包。
文檔對象模型DOM。
Document對象。
動態HTML事件以及事件處理。
Ajax。
JSON。
以上這些知識對于了解和使用Ext JS非常有幫助。因JSON涉及服務器端的處理,所以本書會在本章1.2節講解。
2.HTML
HTML知識,這個對于Web開發人員來說應該是很熟悉的東西。這里主要就是需要熟悉HTML的各種標記。
3.CSS
因為CSS知識的缺乏,很多開發人員在使用Ext JS出現顯示問題時不知道如何調試,不知道如何去找錯誤。而這對學習理解Ext JS也造成了障礙。事實上,全部的JavaScript框架,就是通過腳本的方式生成頁面元素與CSS,通過控制這些元素和CSS,實現需要的功能的,因而,掌握好CSS知識,對學習Ext JS非常重要,這要引起重視。譬如,對于布局,了解布局對象生成的頁面元素和CSS,對加深布局的理解和使用是很有幫助的。因此,我建議對CSS還不是很熟悉的開發人員,好好補上這一課。其實,這個也不難學。因為Ext JS 4中已經嵌入了很多HTML 5和CSS 3的內容,筆者建議閱讀一下《HTML 5與CSS 3權威指南》這本書,在補課的前提下順便學習HTML5與CSS3。
4.面向對象的知識
Ext JS框架是完全基于面向對象思想創建的,能掌握這方面的知識,對理解整個框架的運作和使用是非常有幫助。所以,我建議大家好好看看《設計模式》這本書。這不但對學習Ext JS有幫助,對學習服務器端的開發語言也是很有幫助的。
5.三層架構的知識
Ext JS本身在客戶端就使用了三層架構,所有UI組件都是表現層,Store是數據訪問層。明白了這個,就可避免在UI組件里找數據了。而通過Ajax技術,把瀏覽器當做表現層,服務器端當做數據訪問層。這樣,服務器只通過XML格式或JSON格式提供必要數據就行了,全部的表現可在客戶端通過Ext JS實現。這樣就避免了服務器端代碼和客戶端代碼混搭在一起的問題,從而實現了客戶端與服務器端的脫鉤,簡單來說,就是定義好數據的通信格式,寫客戶端的可以不管服務器端,寫服務器端的可以不管客戶端,客戶端根據通信格式接收數據,服務器根據通信格式提供數據就行了。這樣的優點就是,無論服務器端的架構怎么變(例如我今天用.NET的,明天或許用Java的)都沒關系,按通信格式提供數據客戶端都能正確顯示。客戶說,這個界面不好,要改,沒關系,修改客戶端就行了,因為數據還是那些數據,與服務器端無關。
總的來說,只有明白了三層架構才能深入了解Ext JS的開發思想,才能使用它開發出好的Web應用程序。
介紹三層架構的書不多,原因可能是這個不算太復雜,理解上也不難。而且這已經是屬于架構師的工作范圍了。如果你的目標是架構師的話,可以閱讀一下《架構之美》和《企業應用架構模式》。
6.其他的建議
實踐是最好的老師,如果碰到問題,或者有什么的想法:Just do it!錯誤是在所難免的,只有做過,才懂得為什么不能這樣,為什么要這樣。筆者就是在錯誤中成長起來的,所謂吃一塹長一智!寫Web應用,最大的問題就是宕機而已,有啥可怕的!問人,或許能解決一時的問題,但是不可能一個項目從頭到尾都問別人。"自己動手,豐衣足食"是真理!
如果有時間,建議多看看Ext JS的API文檔和多研究一下Ext JS壓縮包中的例子,這對學習也是大有裨益的。如果能更進一步研究研究源代碼,那就更好了。
如果看英文沒問題,建議多上上Ext JS官網,看看里面的博文,去論壇走走,多交流交流,也是不錯的。
……
在這一章,我們將介紹一些與Ext JS有關的基礎知識以及Ext JS 4的一些主要變化。從2008年接觸Ext JS到現在,不少初學者咨詢過我,應該怎樣才能學好Ext JS?這是一個很好的問題,每個人的學習方法不同,在學習Ext JS之前的基礎都不同,因而如何學好Ext JS因人而異。不過Ext JS始終是一個JavaScript的框架,有其局限性,掌握了Javascript、HTML和CSS等知識,再加上掌握Ext JS的框架結構,就足夠應付Ext JS的學習了。如果再有點面向對象編程的知識,那就如虎添翼了。下面讓我們開始學習Ext JS之旅。
1.1學習Ext JS必需的基礎知識
1.JavaScript
嗯,這個還用說嗎?Ext JS本來就是一個JavaScript的框架,而且使用Ext JS就需要使用JavaScript語法來開發,需要JavaScript的知識是必然的了。問題的關鍵是,開發人員對JavaScript知識的掌握也有深淺之分。譬如,我碰到一些開發人員,對JavaScript算是很熟悉了,但是不會JSON,不會直接使用JSON對象,在使用Ext JS的過程中,需要使用JSON對象的時候,居然是通過組裝字符串的方式,然后使用eval方法將其轉換為對象來使用的。這就是因為JavaScript學習深度不足造成的。
那么,到底JavaScript要學到多深才能學好Ext JS呢?這個問題也不太好回答。不過以筆者的經驗來說,建議仔細認真地看一次《JavaScript權威指南(第5版)》 和《JavaScript高級程序設計(第2版)》這兩本書,重點關注和理解以下內容:
函數。
變量。
作用域(scope)。
原型模式(prototype)。
閉包。
文檔對象模型DOM。
Document對象。
動態HTML事件以及事件處理。
Ajax。
JSON。
以上這些知識對于了解和使用Ext JS非常有幫助。因JSON涉及服務器端的處理,所以本書會在本章1.2節講解。
2.HTML
HTML知識,這個對于Web開發人員來說應該是很熟悉的東西。這里主要就是需要熟悉HTML的各種標記。
3.CSS
因為CSS知識的缺乏,很多開發人員在使用Ext JS出現顯示問題時不知道如何調試,不知道如何去找錯誤。而這對學習理解Ext JS也造成了障礙。事實上,全部的JavaScript框架,就是通過腳本的方式生成頁面元素與CSS,通過控制這些元素和CSS,實現需要的功能的,因而,掌握好CSS知識,對學習Ext JS非常重要,這要引起重視。譬如,對于布局,了解布局對象生成的頁面元素和CSS,對加深布局的理解和使用是很有幫助的。因此,我建議對CSS還不是很熟悉的開發人員,好好補上這一課。其實,這個也不難學。因為Ext JS 4中已經嵌入了很多HTML 5和CSS 3的內容,筆者建議閱讀一下《HTML 5與CSS 3權威指南》這本書,在補課的前提下順便學習HTML5與CSS3。
4.面向對象的知識
Ext JS框架是完全基于面向對象思想創建的,能掌握這方面的知識,對理解整個框架的運作和使用是非常有幫助。所以,我建議大家好好看看《設計模式》這本書。這不但對學習Ext JS有幫助,對學習服務器端的開發語言也是很有幫助的。
5.三層架構的知識
Ext JS本身在客戶端就使用了三層架構,所有UI組件都是表現層,Store是數據訪問層。明白了這個,就可避免在UI組件里找數據了。而通過Ajax技術,把瀏覽器當做表現層,服務器端當做數據訪問層。這樣,服務器只通過XML格式或JSON格式提供必要數據就行了,全部的表現可在客戶端通過Ext JS實現。這樣就避免了服務器端代碼和客戶端代碼混搭在一起的問題,從而實現了客戶端與服務器端的脫鉤,簡單來說,就是定義好數據的通信格式,寫客戶端的可以不管服務器端,寫服務器端的可以不管客戶端,客戶端根據通信格式接收數據,服務器根據通信格式提供數據就行了。這樣的優點就是,無論服務器端的架構怎么變(例如我今天用.NET的,明天或許用Java的)都沒關系,按通信格式提供數據客戶端都能正確顯示。客戶說,這個界面不好,要改,沒關系,修改客戶端就行了,因為數據還是那些數據,與服務器端無關。
總的來說,只有明白了三層架構才能深入了解Ext JS的開發思想,才能使用它開發出好的Web應用程序。
介紹三層架構的書不多,原因可能是這個不算太復雜,理解上也不難。而且這已經是屬于架構師的工作范圍了。如果你的目標是架構師的話,可以閱讀一下《架構之美》和《企業應用架構模式》。
6.其他的建議
實踐是最好的老師,如果碰到問題,或者有什么的想法:Just do it!錯誤是在所難免的,只有做過,才懂得為什么不能這樣,為什么要這樣。筆者就是在錯誤中成長起來的,所謂吃一塹長一智!寫Web應用,最大的問題就是宕機而已,有啥可怕的!問人,或許能解決一時的問題,但是不可能一個項目從頭到尾都問別人。"自己動手,豐衣足食"是真理!
如果有時間,建議多看看Ext JS的API文檔和多研究一下Ext JS壓縮包中的例子,這對學習也是大有裨益的。如果能更進一步研究研究源代碼,那就更好了。
如果看英文沒問題,建議多上上Ext JS官網,看看里面的博文,去論壇走走,多交流交流,也是不錯的。
……
主題書展
更多
主題書展
更多書展今日66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。