新書推薦:
《
天生坏种:罪犯与犯罪心理分析
》
售價:NT$
445.0
《
新能源材料
》
售價:NT$
290.0
《
传统文化有意思:古代发明了不起
》
售價:NT$
199.0
《
亚述:世界历史上第一个帝国的兴衰
》
售價:NT$
490.0
《
人工智能与大数据:采煤机智能制造
》
售價:NT$
440.0
《
新民说·逝去的盛景:宋朝商业文明的兴盛与落幕(上下册)
》
售價:NT$
790.0
《
我从何来:自我的心理学探问
》
售價:NT$
545.0
《
失败:1891—1900 清王朝的变革、战争与排外
》
售價:NT$
390.0
|
編輯推薦: |
Ext JS领域的集大成之作,全面系统地讲解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应用的架构。
|
關於作者: |
黄灯桥(网名:上将军)资深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(博客专家)等各大技术社区,在社区内知名度极高,深受网友欢迎。
|
目錄:
|
前言
第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代码
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 本章小结
第10章 重构后的Grid
10.1 Grid的基类及其构成
10.1.1 概述
10.1.2 表格面板的运行流程:Ext.panel.Table
10.1.3 表格视图的运行流程:Ext.view.Table与Ext.view.TableChunker
10.1.4 列标题容器的运行流程:Ext.grid.header.Container
10.1.5 列标题的运行流程:Ext.grid.column.Column
10.1.6 虚拟滚动条的工作原理:Ext.grid.PagingScroller
10.1.7 锁定列的运行流程:Ext.grid.Lockable与Ext.grid.LockingView
10.2 使用Grid
10.2.1 最简单的Grid
10.2.2 列的配置项
10.2.3 自定义单元格的显示格式
10.2.4 通过列对象定义单元格的显示格式
10.2.5 设置行的背景颜色
10.2.6 列标题的分组
10.2.7 使用锁定列
10.2.8 Grid的配置项、属性、方法和事件
10.3 Grid的附加功能
10.3.1 概述
10.3.2 附加功能基类:Ext.grid.featrue.Featrue
10.3.3 为行添加附加信息:Ext.grid.featrue.RowBody
10.3.4 数据汇总功能:Ext.grid.featrue.AbstractSummary与Ext.grid.featrue.
Summary
10.3.5 分组功能:Ext.grid.featrue.Grouping
10.3.6 分组汇总功能:Ext.grid.featrue.GroupingSummary
10.4 可编辑的Grid
10.4.1 概述
10.4.2 Grid实现可编辑功能的运行流程:Ext.grid.plugin.Editing
10.4.3 单元格编辑的运行流程:Ext.grid.plugin.CellEditing、Ext.grid.CellEditor与Ext.Editor
10.4.4 行编辑的运行流程:Ext.grid.plugin.RowEditing与Ext.grid.RowEditor
10.4.5 在Grid中使用单元格编辑模式
10.4.6 在Grid中使用行编辑模式
10.4.7 Grid编辑插件的配置项、属性、方法和事件
10.5 关于列表视图:ListView
10.6 属性Grid
10.6.1 概述
10.6.2 使用属性Grid
10.6.3 自定义编辑组件
10.6.4 PropertyGrid的配置项、属性、方法和事件
10.7 综合实例
10.7.1 使用不同选择模型的Grid以及设置默认选择行
10.7.2 Grid的本地排序和过滤
10.7.3 使用分页工具条(PagingToolbar)实现远程分页、排序和过滤
10.7.4 使用分页滚动条(PagingScroller)实现远程分页、排序和过滤
10.7.5 使用CellEditing实现数据的增删改
10.7.6 使用RowEditing实现数据的增删改
10.7.7 主从表的显示
10.8 本章小结
第11章 与Grid同源的树
11.1 树的构成
11.1.1 概述
11.1.2 树面板的运行流程:Ext.tree.Panel
11.1.3 TreeStore的运行流程:Ext.data.TreeStore
11.1.4 TreeColumn的运行流程:Ext.tree.Column
11.1.5 视图的运行流程:Ext.tree.View与Ext.data.NodeStore
11.1.6 树的选择模型:Ext.selection.TreeModel
11.2 树的使用
11.2.1 一个最简单的树
11.2.2 树节点的默认字段
11.2.3 为树节点添加附加字段
11.2.4 显示多列数据(TreeGrid效果)
11.2.5 在树中使用复选框
11.2.6 树的配置项、属性、方法和事件
11.3 综合实例
11.3.1 树的远程加载
11.3.2 树的动态加载及节点维护
11.3.3 XML树及节点维护
11.3.4 使用树动态控制Grid的显示
11.4 本章小结
第12章 表单
12.1 表单的构成及操作
12.1.1 表单面板的运行流程:Ext.form.Panel与Ext.form.FieldAncestor
12.1.2 表单面板的配置项、属性、方法和事件
12.1.3 表单的管理:Ext.form.Basic
12.1.4 BasicForm的配置项、属性、方法和事件
12.1.5 表单的操作:Ext.form.action.Action
12.1.6 加载操作的运行流程:Ext.form.action.Load与Ext.form.action.DirectLoad
12.1.7 提交操作的运行流程:Ext.form.action.Submit、Ext.form.action.DirectSubmit与Ext.form.action.StandardSubmit
12.1.8 字段的构成
12.1.9 BaseField的配置项、属性、方法和事件
12.1.10 常用的验证函数:Ext.form.field.VTypes
12.2 使用字段
12.3 使用Trigger类字段
12.3.1 具有单击功能的字段:Ext.form.field.Trigger
12.3.2 实现微调功能的Spinner字段
12.3.3 使用NumberField字段
12.3.4 下拉选择类字段的基类:Ext.form.field.Picker
12.3.5 使用DateField字段
12.3.6 使用TimeField字段
12.4 使用ComboBox字段
12.4.1 概述
12.4.2 BoundList对象的运行流程
12.4.3 ComboBox字段的配置项、属性、方法和事件
12.4.4 最简单的ComboBox
12.4.5 自定义列表显示格式的ComboBox
12.4.6 动态调整ComboBox的列表数据
12.4.7 实现ComboBox的联动
12.4.8 使用ComboBox的查询功能
12.4.9 设置ComboBox的默认值
12.5 表单的验证和加载数据
12.5.1 表单的验证及错误显示方式
12.5.2 为表单加载数据
12.6 在表单中使用布局
12.6.1 分列显示表单的字段
12.6.2 使用Fieldset作为列容器
12.6.3 使用两列布局加HtmlEditor的表单
12.6.4 在表单中使用标签页
12.7 综合实例:实现Products表的管理功能
12.8 本章小结
第13章 窗口
13.1 窗口:Ext.window.Window.
13.1.1 窗口的构成
13.1.2 窗口的配置项、属性、方法和事件
13.1.3 使用窗口
13.1.4 在窗口内使用布局
13.2 信息提示窗口:Ext.window.MessageBox
13.2.1 概述
13.2.2 信息提示窗口的构成
13.2.3 使用信息提示窗口
13.2.4 信息提示窗口按钮的本地化
13.2.5 使用alert方法
13.2.6 使用confirm方法
13.2.7 使用progress方法
13.2.8 使用prompt方法
13.2.9 使用wait方法
13.2.10 使用信息提示窗口要注意的问题
13.3 综合实例:实现登录窗口
13.4 本章小结
第14章 按钮、菜单与工具条
14.1 按钮
14.1.1 按钮的构成:Ext.button.Button
14.1.2 按钮的配置项、属性、方法和事件
14.1.3 使用按钮
14.1.4 带分割线的按钮:Ext.button.Split
14.1.5 多状态按钮:Ext.button.Cycle
14.1.6 按钮组:Ext.container.ButtonGroup
14.2 菜单及菜单项
14.2.1 Ext JS的菜单(Menu对象)是什么
14.2.2 菜单管理器:Ext.menu.Manager
14.2.3 菜单项:Ext.menu.Item
14.2.4 可复选的菜单项:Ext.menu.CheckItem
14.2.5 菜单分隔条:Ext.menu.Separator
14.2.6 颜色选择器菜单:Ext.menu.ColorPicker
14.2.7 日期选择菜单:Ext.menu.DatePicker
14.2.8 使用菜单
14.3 工具栏及工具栏组件
14.3.1 工具栏:Ext.toolbar.Toolbar
14.3.2 非交互式工具栏条目的基类:Ext.toolbar.Item
14.3.3 文本项:Ext.toolbar.TextItem
14.3.4 填充项:Ext.toolbar.Fill
14.3.5 工具栏分隔条:Ext.toolbar.Separator
14.3.6 空白项:Ext.toolbar.Spacer
14.3.7 分页工具栏:Ext.toolbar.Paging
14.3.8 使用工具栏
14.4 使用Ext.Action
14.4.1 概述
14.4.2 Action对象配置项和方法
14.4.3 使用示例
14.5 综合实例:在Grid中使用右键菜单
14.6 本章小结
第15章 图形与图表
15.1 基础知识
15.1.1 SVG简介
15.1.2 VML简介
15.2 图形介绍
15.2.1 概述
15.2.2 画布的工作流程:Ext.draw.Component
15.2.3 图形引擎及接口:Ext.draw.Surface、Ext.draw.engine.Svg和Ext.draw.engine.Vml
15.2.4 画笔:Ext.draw.Sprite
15.2.5 图层:Ext.draw.CompositeSprite
15.2.6 调色板:Ext.draw.Color
15.2.7 辅助对象:Ext.draw.Draw与Ext.draw.Matrix
15.3 使用图形功能
15.3.1 简单的开始
15.3.2 DrawComponent对象的配置项、属性、方法和事件
15.3.3 Surface对象的配置项、属性、方法和事件
15.3.4 DrawSprite对象的配置项、属性、方法和事件
15.3.5 CompositeSprite对象的配置项、属性、方法和事件
15.3.6 使用基本图形
15.3.7 使用图片
15.3.8 使用路径
15.3.9 移动、旋转和缩放图形
15.3.10 使用渐变效果
15.3.11 使用图层
15.4 图表介绍
15.4.1 概述
15.4.2 图表的工作流程
15.5 使用图表
15.5.1 从一个简单例子开始
15.5.2 坐标轴的配置项
15.5.3 Series对象的配置项、属性、方法和事件
15.5.4 折线图的配置项
15.5.5 显示多个折线图及使用图例
15.5.6 使用面积图
15.5.7 简单条形图(Bar和Column Chart)及使用标签(Label对象)
15.5.8 堆积条形图
15.5.9 分组条形图
15.5.10 自定义条形颜色
15.5.11 使用散点图
15.5.12 使用饼图
15.5.13 自定义饼块颜色
15.5.14 使用表盘图
15.5.15 使用雷达图
15.5.16 使用时间轴
15.5.17 实现实时动态的图表
15.5.18 使用组合图
15.5.19 在图表中使用背景
15.5.20 在图表中自定义主题
15.6 本章小结
第16章 其他组件及实用功能
16.1 其他组件
16.2 使用滑块
16.3 使用提示信息
16.4 实用功能
16.5 本章小结
第17章 可简化通信的Ext.Direct
17.1 准备工作
17.2 Ext.Direct的工作原理及构成
17.2.1 工作原理
17.2.2 Ext.Direct的构成
17.2.3 RemotingProvider对象的具体工作流程
17.2.4 PollingProvider对象的具体工作流程
17.3 配置Ext.Direct的使用环境
17.3.1 概述
17.3.2 .NET环境的配置
17.3.3 Java环境的配置
17.4 使用Ext.Direct
17.4.1 概述
17.4.2 使用DirectProxy及进行CURD操作
17.4.3 使用Ext.Direct实现树的动态加载及节点维护
17.4.4 使用DirectLoad为表单加载数据
17.4.5 使用DirectSubmit提交表单及使用Session
17.4.6 使用Ext.Direct上传文件
17.4.7 使用PollingProvider对象
17.4.8 错误处理
17.5 本章小结
第18章 动画功能
18.1 动画功能的构成及工作流程
18.1.1 概述
18.1.2 动画功能的工作流程:Ext.fx.Anim
18.1.3 分步动画的工作流程:Ext.fx.Animator
18.2 使用动画
18.2.1 由最简单的动画开始
18.2.2 过渡效果使用的功能函数介绍
18.2.3 使用分步动画
18.2.4 注意的问题
18.3 在Element对象中使用动画
18.4 本章小结
第19章 拖放功能
19.1 拖放功能的构成及工作流程
19.1.1 概述
19.1.2 DragDropManager对象的工作流程
19.1.3 注册节点:Ext.dd.Registry
19.1.4 一般拖动功能的工作流程:Ext.dd.DD
19.1.5 DragSource对象的工作流程
19.1.6 DropTarget对象的工作流程
19.1.7 DragZone对象的工作流程
19.1.8 DropZone对象的工作流程
19.2 使用拖放功能
19.2.1 最简单的拖动效果
19.2.2 使用DragSource对象与DropTarget对象
19.2.3 使用DragZone对象与DropZone对象(使用Registry对象)
19.2.4 使用DragZone对象与DropZone对象(不使用Registry对象)
19.2.5 通过拖动实现节点排序
19.2.6 使用GridViewDropZonePlugin插件
19.2.7 使用TreeViewDragDropPlugin插件
19.2.8 关于Grid和Tree拖动后的数据保存问题
19.3 本章小结
第20章 扩展与插件
20.1 扩展与插件的区别
20.2 扩展与插件如何选择
20.3 如何编写扩展
20.3.1 命名空间
20.3.2 定义扩展
20.3.3 定义别名
20.3.4 定义备用名
20.3.5 要求加载的类:requires与uses
20.3.6 混入功能
20.3.7 构造函数与initComponent方法
20.3.8 静态属性和方法与单件模式
20.3.9 可自动生成set和get方法的属性与initConfig方法
20.3.10 在扩展中常用的方法
20.3.11 编写扩展:TreeComboBox
20.4 如何编写插件
20.4.1 概述
20.4.2 AbstractPlugin对象
20.4.3 插件的别名
20.4.4 编写插件:RowColor
20.5 扩展和插件介绍
20.5.1 概述
20.5.2 本地分页代理:Ext.ux.data.PagingMemoryProxy
20.5.3 标签滚动菜单:Ext.ux.TabScrollerMenu
20.5.4 编辑器TinyMCE
20.6 本章小结
第21章 主题开发
21.1 准备工作
21.1.1 安装Ruby
21.1.2 安装Compass
21.1.3 SASS介绍
21.2 为Ext JS 4创建新主题
21.2.1 概述
21.2.2 目录结构
21.2.3 修改配置
21.2.4 编译
21.2.5 测试主题
21.3 通过ui配置项设置组件样式
21.4 本章小结
第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官网,看看里面的博文,去论坛走走,多交流交流,也是不错的。
|
|