Ext JS源碼分析與開發實例寶典

所属分类:計算機理論、基礎知識  
出版时间:2010-1   出版时间:電子工業出版社   作者:彭仁夔   页数:596  

前言

  Ext JS是一款非常優秀的JavaScript框架,不但能方便地實現優美絢麗的Web應用系統,而且其源碼架構的設計及實現令人叫絕。任何一種優秀技術都會有一批布道者去分析、研究並推廣它,Ext JS也不例外。  但是Ext JS結構過于龐大,大多數開發者只能是對著Ext JS的應用文檔依葫蘆畫瓢地開發應用系統。這樣一知半解的開發方式,會導致開發中出現眾多問題,比如︰性能低下、效率不高、開發出來的用戶體驗千篇一律等。而目前市場上Ext JS的書籍大部分都停留在對Ext JS的應用上。深入到Ext JS的實現原理及內部運行機制,這對開發者而言非常重要,因為這是用活用好Ext JS的關鍵所在。  不是沒有人去分析Ext JS的源碼,但其源碼架構宏偉,所需知識眾多,開發者在閱讀其源碼時一般都是一知半解,而市面上卻沒有這方面的資料。筆者也是Ext JS源碼分析大軍中的一員,在解讀其源碼之後的那種興奮和快樂,讓自己覺得應該把它分享出來。  在寫了零散的源碼分析文章後,卻發現這樣效果並不是很好,讀者還是很難深入。為了讓讀者能更好地學習,最大限度地不讓學習曲線過于陡峭,讓愛好Web開發的人員也能體會到Ext JS開發的樂趣,遂萌發了編寫這本宏大作品的想法,讓開發者能充分、深入地了解Ext JS源碼機制及實現並能將Ext JS最佳應用。  讀書的最高境界是厚積薄發,這是對讀者的要求,而其背後也隱含著對作者的要求,如何引導讀者厚積薄發,這本就應該是作者的義務。一本書的內容從定下主旨開始就是渾然天成的整體,如東家之子,增之一分則太長,減之一分則太短。內容的多寡與缺失都會影響它的完整性和藝術性。  為了達到這個目的,本書的內容無論從哪個角度來看都應該是一條線串聯著的。本書是Ext JS源碼分析書,它把整個Ext JS的源碼采用core→element→component 3個單詞來串聯。本書是Ext JS應用書,它采用網絡辦公系統實例應用貫穿著整本書的知識點。  讀者可以從這條線出發,慢慢地擴展細化,最終擴展到整個Ext JS體系。還可以通過整個Ext JS體系慢慢地收縮歸納,最終薄發到這條線上來。本書從內容的編排上來看也是一條線,它分成4個部分,每部分都有相關的章節。這4個部分的主要內容是Introduction(入門)、Core(核心)、Element(元素)和Component(組件)。通過這幾部分,讀者不僅能應用Ext JS進行開發,還能了解其工作原理和機制,知其然,亦知其所以然。  寫書是一項枯燥乏味的工作,但也是一種痛並快樂著的孕育過程。快樂的源泉來自讀者的肯定。作者夜以繼日的工作,最大目的就是為了交給讀者一份最滿意的技術書。但是Ext JS源碼涉及的領域廣泛,同時作者水平有限,書中難免有一些不足之處。懇請廣大讀者批評指正,並發E-mail到sharepub@126.com聯系。

内容概要

  本書全面系統地剖析了ExtJS 3.0的架構設計原理。通過對源碼的“抽絲剝繭”,讀者可以掌握Ext JS架構的精妙,從原理層面用活Ext JS。此外,本書還提出了大量的解決方案,以使Ext JS滿足用戶 日益增長的體驗需要。  本書分為4個部分,共17章。快速入門部分講解Ext JS的背景及體系結構,並通過案例實現讓 讀者快速入門。核心技術部分深入講解Ext JS的核心基礎知識,包括JS原生對象的擴展、事件機制、 模板模型、數據模型,包括一個機制、兩個模型及六個擴展。基于元素的開發部分講解了在DOM元素基 礎上擴展的Ext JS元素,包括元素操作、元素查找、元素樣式、動畫特效和拖曳實現。深入組件的開 發部分講解Ext JS組件的原理及各大組件的應用,包括組件模型、容器模型、布局設計、Form組件、 Grid組件、Tree組件及Menu組件。  本書結構緊湊,條理清晰,注重對Ext JS優美代碼的分析和應用,通過閱讀漂亮的代碼,能夠極 大地提升代碼編寫的質量。為了讓讀者更好地理解知識,本書還配備了豐富的應用實例,在充分理解源 碼的基礎上,對Ext JS進行了大量實用性強的擴展。  本書可以作為Web應用開發的參考手冊,適合具備一定HTML和JavaScript基礎的開發人員學習, 特別適合從事RIA Web開發的人員自學參考,也可以作為Ext JS應用開發的培訓教材。

书籍目录

第1部分 快速入門 1第1章 Web如此美麗,初探Ext JS 21.1 Ext JS是什麼 21.2 為什麼選擇Ext JS 31.3 如何學習Ext JS 51.3.1 獲取源碼並部署 51.3.2 開發工具的智能提示 51.3.3 文檔和實例的學習 81.3.4 學習論壇 91.4 Ext JS體系結構 91.4.1 體系結構 91.4.2 文件結構 111.5 小結 13第2章 Ext JS 3.0實例入門 142.1 準備工作,配置環境 142.2 看似簡單的登錄頁面,隱藏好大的學問 152.2.1 頁面布局 162.2.2 表單布局 182.2.3 驗證碼 202.2.4 表單驗證 212.2.5 表單提交 222.3 主框架頁面 242.3.1 主框架頁面布局 262.3.2 左邊導航菜單 282.3.3 右邊工作區域 302.4 子頁面 322.4.1 數據處理 322.4.2 列表 342.5 小結 35第2部分 核心技術 37第3章 Ext JS核心基礎 383.1 繼承的擴展 383.1.1 對象的繼承 383.1.2 類的繼承 393.1.3 Ext.extend擴展 403.2 函數的擴展 423.2.1 從一個錯誤說起 423.2.2 函數的委托 433.3 數組及集合 443.3.1 JavaScript數組 453.3.2 Ext JS集合操作 463.4 String的轉換 503.4.1 String轉換的基本知識 503.4.2 String和JSON轉換 503.4.3 查詢字符串與對象轉換 523.5 Date的使用 533.5.1 日期格式化 533.5.2 日期的比較及計算 553.6 定時任務 563.6.1 有狀態的定時任務管理 563.6.2 定時任務管理器 583.7 小結 60第4章 你必須知道的Ext JS事件機制 614.1 瀏覽器事件機制 614.2 Ext JS元素事件 634.2.1 Event對象 634.2.2 EventManager 674.3 基本事件擴展 714.3.1 DomReady處理 714.3.2 快捷鍵的實現 724.3.3 導航鍵的實現 744.3.4 鼠標按住事件 754.4 Ext JS組件事件 764.4.1 事件對象 774.4.2 組件的事件機制 784.4.3 基于攔截的事件實現 814.4.4 組件及元素事件結合 834.5 擴展TabBox事件 844.5.1 焦點 844.5.2 擴展TabBox導航 854.5.3 自定義TabBox事件 874.6 小結 89第5章 模板模型,組件開發的基石 905.1 Ext JS模板概述 905.2 正則表達式基礎 915.2.1 正則表達式引擎 915.2.2 字符匹配 935.2.3 選擇、分組及引用 955.3 正則表達式的使用 975.3.1 exec和match 975.3.2 replace函數 975.4 基本模板 995.4.1 模板的構建 995.4.2 應用動態數據 1005.4.3 編譯模板 1015.5 擴展模板 1035.5.1 實現原理 1045.5.2 編譯Xtemplate模板 1075.5.3 為Xtemplate應用動態數據 1105.6 模板問題及改進 1105.6.1 模板的問題 1105.6.2 問題的解決 1125.7 通信錄的實現 1145.7.1 應用DataView 1155.7.2 數據分頁和過濾 1175.7.3 通信錄中的信息 1185.8 小結 119第6章 改善用戶體驗,交互數據模型 1206.1 Ajax請求 1206.1.1 從網絡通信協議開始 1206.1.2 手動實現Ajax 1236.1.3 便利函數讓調用更加方便 1266.1.4 表單請求 1276.1.5 跨域請求 1316.2 Direct請求 1346.2.1 Comet請求 1346.2.2 RPC請求 1376.3 代理請求 1416.3.1 REST風格 1416.3.2 代理請求的處理過程 1426.3.3 MemoryProxy的擴展 1456.4 數據解析的實現 1476.4.1 定義表結構 1476.4.2 解析表數據 1526.4.3 數組解析的擴展 1566.5 數據回寫 1576.5.1 組裝請求參數 1576.5.2 保存之後更新 1596.6 數據存儲 1606.6.1 構建Store對象 1606.6.2 載入數據 1626.6.3 保存數據 1646.7 DWR數據交互 1666.7.1 DWR請求擴展 1676.7.2 DWR數據解析 1696.7.3 CRUD操作 1716.8 小結 172第3部分 基于元素的開發 173第7章 元素擴展,讓開發更靈活 1747.1 Ext. DomHelper類 1747.1.1 元素創建 1747.1.2 元素插入 1757.2 Ext.DomQuery類 1787.2.1 實現原理 1797.2.2 查詢及過濾實現 1807.2.3 編譯解析 1827.3 Ext JS元素架構 1857.3.1 Ext.Element元素 1857.3.2 Ext.CompositeElementLite 1877.4 表單實例 1897.4.1 實現並載入表單 1897.4.2 計算相關費用 1917.5 小結 195第8章 Ext JS樣式的完美應用 1968.1 樣式基本操作 1968.1.1 創建元素 1978.1.2 元素定位 1988.1.3 可視及其他 1998.2  JS操作樣式 2008.2.1 style的操作 2018.2.2 class的操作 2038.2.3 動態加入CSS Rules 2048.2.4 重構它們 2068.3 Dimensions操作 2078.3.1 寬高操作 2088.3.2 坐標定位操作 2118.3.3 重構它們 2148.4 相對定位與約束 2158.4.1 元素相對定位 2168.4.2 scroll定位 2198.4.3 Resize元素定位的實現 2208.5 ImageCropper的實現 2248.5.1 創建容器 2258.5.2 創建三層圖片並載入 2268.5.3 初始化Resize和拖曳 2278.5.4 顯示選擇內容 2298.6 小結 231第9章 讓Web頁面動起來 2329.1 動畫的原理 2329.1.1 原理實現 2329.1.2 改進的實現 2349.2 Ext JS動畫實現 2379.2.1 Ext JS動畫管理器 2379.2.2 動畫對象 2389.3 動畫的進一步深入 2439.3.1 動畫類型 2439.3.2 動畫算法 2479.3.3 Fx特效處理 2519.4 擴展Ext JS矢量圖 2549.4.1 excanvas基本應用 2549.4.2 excanvas高級應用 2619.5 交互式動畫報表圖 2669.5.1 基本折線圖 2669.5.2 動畫的實現 2739.5.3 交互式選擇的實現 2759.5.4 ToolTip的實現 2799.6 小結 282第10章 拖曳技術,讓用戶也動起來 28310.1 Ext JS拖曳原理剖析 28310.1.1 如何選中元素 28310.1.2 如何實現鼠標移動位置 28410.1.3 如何確定元素目標位置 28510.2 Ext JS拖曳架構 28510.2.1 拖曳共性處理 28510.2.2 拖曳個性處理 28910.3 拖曳形式的選擇題應用 29710.3.1 選擇題的實現 29710.3.2 選項拖曳的實現 29910.4 拖曳高級擴展 30310.4.1 拖曳元素狀態處理 30410.4.2 目標元素狀態處理 30610.4.3 把拖曳目標和拖曳元素綜合起來 31110.5 拖曳定制流程 31510.5.1 基本的流程圖 31510.5.2 拖曳的實現 31910.5.3 拖曳的完善 32410.6 小結 327第4部分 深入組件的開發 329第11章 Ext JS組件模型的架構解析 33011.1 認識Ext JS組件 33011.2 生命周期設計 33211.2.1 初始化 33211.2.2 渲染表現 33411.2.3 銷毀組件,釋放系統資源 33511.3 可擴展性設計 33711.3.1 類繼承的支持 33711.3.2 事件的支持 33711.3.3 插件的支持 33811.3.4 可配置的支持 33811.3.5 模板方法的支持 33911.4 可管理性設計 33911.4.1 全局統一管理 33911.4.2 組件類別管理 34011.4.3 內部狀態管理 34011.5 組件分析法 34311.5.1 生命周期分析 34311.5.2 配置項分析 34511.5.3 方法及屬性分析 34511.5.4 事件分析 34711.5.5 組件特性 34711.6 如何自定義組件 34811.6.1 組件的需求 34811.6.2 按生命周期來編寫組件 34811.6.3 重構 34911.6.4 編寫文檔 35011.7 小結 350第12章 Ext JS面板,信息提示更人性化 35112.1 浮動層(Layer) 35112.1.1 shim實現 35112.1.2 shadow實現 35212.1.3 約束定位 35512.1.4 浮動層顯示 35712.2 容器(Container)布局 35912.2.1 生命周期分析 35912.2.2 容器特性 36112.3 面板(Panel)布局 36312.3.1 面板組成 36312.3.2 面板樣式 36712.3.3 面板的折疊/展開 37012.4 窗體(Window)布局 37212.4.1 最大最小化 37212.4.2 改變大小 37512.4.3 窗體顯示問題 37612.5 工具提示 37712.5.1 Ext.Tip類 37712.5.2 Ext.ToolTip類 37812.5.3 Ext.QuickTip類 37912.6 氣球提示(BalloonTip) 38212.6.1 實現BalloonTip組件 38312.6.2 進一步完善 38812.7 小結 393第13章 Ext JS 華麗的容器布局 39413.1 認識布局的流程 39413.1.1 布局概述 39413.1.2 布局的流程 39513.2 Border布局 39713.2.1 如何渲染 39813.2.2 如何計算布局區域 39913.2.3 如何實現折疊與展開 40213.3 錨定位布局 40513.3.1 AnchorLayout布局 40513.3.2 AbsoluteLayout布局 40713.3.3 FormLayout布局 40813.4 自適應布局 40913.4.1 FitLayout 41013.4.2 AccordionLayout 41013.4.3 CardLayout 41213.5 表行列布局 41313.5.1 ColumnLayout 41313.5.2 RowLayout 41413.5.3 TableLayout 41513.6 Box布局 41813.7 如何擴展TableFormLayout 42013.8 小結 422第14章 Ext JS Form的交互式表單 42314.1 FormPanel聚散地 42314.1.1 Form關系圖 42314.1.2 與BaseForm關聯 42514.1.3 與Field關聯 42614.1.4 驗證操作 42714.1.5 數據處理 42914.1.6 FieldSet 43314.2 Field組件 43414.2.1 Field的創建 43514.2.2 Field的驗證 43614.3 文本輸入組件 43814.3.1 單行文本輸入組件 43814.3.2 多行文本輸入組件 44114.3.3 文本編輯組件 44214.4 選擇組件 44714.4.1 單個選擇組件 44714.4.2 選擇組 44814.5 下拉組件 45214.5.1 TriggerField 45214.5.2 Combox 45414.5.3 多選組件擴展 45914.6 注冊頁面的實現 46514.6.1 基本的Form組件應用 46514.6.2 上傳處理 46814.7 小結 471第15章 Ext Grid組件讓數據更直觀 47215.1 認識Ext JS 的Grid 47215.1.1 概述 47215.1.2 如何創建GridPanel 47315.1.3 GridPanel如何運行 47415.1.4 可編輯的GridPanel 47615.2 列模式 48015.2.1 CM分析 48015.2.2 CM的高級應用 48215.3 選擇模式 48515.3.1 RowSelectionModel 48515.3.2 CheckboxSelectionModel 48815.4 視圖 48915.4.1 Grid生成HTML內容 48915.4.2 如何構建表結構 49115.4.3 導入數據 49515.4.4 通過流程進一步分析 49715.5 分頁欄 49915.5.1 載入數據進行顯示 50015.5.2 請求數據 50115.6 對Grid的改進 50215.6.1 下拉框編輯的問題 50215.6.2 嵌套表格的問題 50515.6.3 多表頭操作 50715.7 單元格實現跨列運算 50915.7.1 單元格多選模式 51015.7.2 公式統計計算 51215.7.3 應用實例 51515.8 小結 516第16章 深入Ext JS 的樹形展示 51716.1 樹組件的原理 51716.2 Ext JS樹組件的分析 51916.2.1 樹的創建 52016.2.2 樹的生命周期分析 52016.3 樹組件節點 52216.3.1 基本節點 52216.3.2 TreeNode類 52316.4 樹組件的事件 52916.4.1 事件的流程 52916.4.2 事件的選擇模式 53216.5 完善樹的功能 53316.5.1 樹的數據 53316.5.2 編輯、過濾及排序 53616.6 ECOTree的實現 54016.6.1 樹的基本實現 54116.6.2 節點的實現 54716.6.3 折疊、編輯、拖曳及其他完善 55016.7 小結 554第17章 基于Ext JS Menu組件的快速開發 55517.1 Action類 55517.1.1 Action類的作用 55517.1.2 Action類的運行流程 55617.2 Button類 55817.2.1 生命周期 55817.2.2 樣式處理 55917.2.3 狀態切換 56017.3 開發個性的工具欄 56217.3.1 如何解析工具項 56217.3.2 如何進行布局 56317.3.3 豎形工具欄的實現 56617.4 自己來設計菜單欄 56817.4.1 菜單的顯示 56817.4.2 菜單的動作 57017.5 類UE編輯器的實現 57217.5.1 基本的編輯器 57217.5.2 活動工具欄 57417.6 小結 578

媒体关注与评论

  随着浏览器的不断进步和RIA(Rich Interface Application。)的逐渐流行,JS(JavaScript)这门历史悠久的开发技术不断焕发出新的生机,开发人员为JS开发出各种框架,来提升开发的质量与效率,以适应Web 2.0时代Web应用程序的开发。在众多的框架中,Ext JS以其独特的设计、强大的功能和开源的优势,获得了巨大的成功。  本书的作者通过清晰的实例,详细讲述了Ext JS的核心概念和实际应用,体现了作者高度的理论修养和丰富的实践经验。读者既可以从中体会Ext JS框架的设计思想,也可以直接按照书中的实例进行操作,解决开发中遇到的问题。同时,本书行文流畅,逻辑严谨,改变了通常技术书籍晦涩难懂的形象,这是本书的又一亮点。  ——诺和诺德(中国)科技有限公司,NNIT(China),高级开发技术研究与培训专家,杜新润  本书很全面地讲解了Ext JS框架,以及其他类似的JavaScript框架,能让初学者很快上手。通过不同的开发环境,如VS、dw、Eclipse,配置Ext JS的智能感应功能,提高Ext JS的开发效率与开发速度。对Ext JS的体系结构描述清楚,通俗易懂,通过简单的例子,介绍了Ext JS 3.0对UI的应用、DOM元素、事件、数据的处理等。逻辑层次清晰,由浅入深地进述了Ext√S的点点滴滴。虽然只看了部分章节,但也能体会作者对Ext JS的每一个要点都讲得很详细,是一本难得的好书。  ——中国软件工程网(www.rigc.net),全体开发工程师  本书层次清晰,层层深入地进行例子讲解,案例丰富,介绍了Ext JS的概念和应用技巧。结合实际的项目讲解Ext JS在UI和整体项目上的应用特点,值得前端设计人员和Ajax爱好者学习。  ——成都微核科技,界面工程师,David.heii.R 

编辑推荐

  全面剖析Ext JS 3.0的架構原理,透徹體悟Ext JS的代碼之美,講解近70個DEMO實例,配套DVD中包窗大量源碼和案例文件。

图书封面




    Ext JS源碼分析與開發實例寶典下載



用户评论 (总计0条)

 
 

 

計算機與互聯網 PDF免费下载,計算機理論、基礎知識PDF免费下载。 计算机教程网 

计算机教程网 @ 2018