具体描述
Ext JS是一个用JavaScript编写的、独立于后台技术的前端AJAX框架,可以用在.NET、Java、PHP等各种编程语言开发的应用中,以开发华丽的富客户端应用。用Ext JS打造的RIA Web应用不仅具有与桌面程序一样的标准用户界面与操作方式,而且能够跨浏览器平台运行。Ext JS业已成为开发具有完满用户体验的Web应用的完美之选。
作为一本内容详实的Ext JS学习指南,《精通Ext JS》以Ext JS 4.2为依托,站在开发者的角度思考问题,将应用划分为不同的功能模块,一章解决一个任务,带我们渐进式开发基于MVC的完整应用,经历从界面原型到产品上线前的各个阶段。其中,你将学会实现用户及分组安全功能,掌握网格、表单、图表和树形结构,以及将不同表示结构的内容导出成PDF和Excel格式的最佳实践方式。而且,在开发完成应用程序的所有功能后,Loiane Groner还将带你自定义漂亮的主题,以突出应用程序的个性化风格,为产品上线做足准备。
通读本书,融会贯通Ext JS应用开发的各种知识与思路,你将能够用Ext JS创建绝妙的应用!
本书内容:
开发内容管理模块;
服务器端的信息处理(避免使用JSON文件);
构建WordPress主题(Ext JS的不同应用场景);
开发电子邮件客户端、分组及安全模块;
构建产品级应用;
Ext JS应用调试与测试;
重用代码构建移动应用的方法。
作者简介
Loiane Groner
花旗银行软件开发经理,负责海外项目的开发和团队管理工作;原IBM公司系统分析师及团队负责人;巴西坎皮纳斯Java用户组(CampinasJUG/SouJava Campinas)领导者、圣埃斯皮里图Java用户组(ESJUG)协调人;巴西各大型技术会议特邀发言人;Sencha和Java技术布道者,通过博客(http://loianegroner.com和http://loiane.com)为软件开发社区撰稿,发表关于IT职业发展、Ext JS、Sencha Touch、Sencha Architect、Java及常用开发技术方面的文章和视频。另外,她还著有Ext JS 4 First Look和Sencha Architect App Development。
目录信息
1.1 安装所需软件 1
1.2 展示应用及其功能 3
1.2.1 启动界面 3
1.2.2 登录界面 4
1.2.3 主界面 4
1.2.4 用户控制管理 5
1.2.5 MySQL数据库表管理 5
1.2.6 内容管理控制 6
1.2.7 电子邮件客户端模块 7
1.3 用MVC创建应用框架 8
1.3.1 MVC简介 8
1.3.2 创建应用 9
1.4 创建加载页面 14
1.5 小结 19
第2章 登录界面 20
2.1 登录界面 20
2.2 创建登录界面 21
2.2.1 客户端验证 24
2.2.2 添加带有按钮的工具栏 26
2.2.3 运行代码 27
2.2.4 itemId还是id:Ext.Cmp的问题 28
2.3 创建登录控制器 28
2.3.1 在app.js中添加控制器 29
2.3.2 监听按钮点击事件 30
2.4 创建用户和用户组表 38
2.5 服务器端的登录界面处理 39
2.5.1 连接数据库 39
2.5.2 login.php 40
2.5.3 处理服务器端的返回结果——登录与否 42
2.6 优化登录界面 45
2.6.1 进行认证时为表单提供一个加载遮罩 45
2.6.2 回车提交表单 46
2.6.3 大写键提醒信息 46
2.7 小结 50
第3章 注销与多语言支持 51
3.1 基本应用界面 51
3.2 注销功能 54
3.2.1 重构登录和注销代码 56
3.2.2 服务器端注销功能 58
3.2.3 客户端行为监控 58
3.3 多语言支持 59
3.3.1 创建语言转换组件 60
3.3.2 创建转换文件 62
3.3.3 使用转换信息 63
3.3.4 HTML5本地存储 63
3.3.5 实时的语言切换 64
3.3.6 本地化:Ext JS语言转换 67
3.4 小结 67
第4章 动态菜单高级应用 68
4.1 创建动态菜单 68
4.1.1 数据库模型:用户组、菜单及权限 69
4.1.2 创建菜单模型:hasMany绑定 70
4.1.3 创建数据存储器:通过服务器端加载菜单 73
4.1.4 在服务器端处理动态菜单 73
4.1.5 用折叠面板和树形面板创建菜单 76
4.1.6 在视见区替换中央区域容器 76
4.1.7 创建菜单控制器 77
4.1.8 改动app.js 80
4.2 小结 81
第5章 用户鉴权与安全 82
5.1 用户管理 82
5.2 列出所有用户:简单的网格面板 83
5.2.1 用户模型 83
5.2.2 用户存储器 84
5.2.3 用户网格面板 85
5.2.4 用户控制器 88
5.3 添加和编辑用户 89
5.3.1 创建编辑视图:窗体里的表单 89
5.3.2 用户组模型 93
5.3.3 用户组集模型 93
5.3.4 控制器:监听Add按钮事件 94
5.3.5 控制器:监听Edit按钮事件 95
5.3.6 控制器:保存用户信息 96
5.3.7 控制器:监听Cancel按钮 97
5.3.8 在上传之前预览文件 98
5.4 删除用户 99
5.5 小结 101
第6章 MySQL数据库表管理 102
6.1 呈现数据库表 102
6.2 创建模型 104
6.2.1 抽象模型 104
6.2.2 特定模型 105
6.3 创建存储器 106
6.3.1 抽象存储器 107
6.3.2 抽象代理类 107
6.3.3 特定存储器 111
6.4 创建菜单项 112
6.5 创建重用的抽象网格面板 113
6.5.1 用MVC架构模式处理操作列 118
6.5.2 在操作列用iconCls属性取代icon属性 118
6.5.3 比较即席搜索插件与过滤插件 119
6.5.4 对应每张数据库表的特定网格面板 120
6.6 通用控制器 121
6.6.1 在网格渲染时加载网格面板 122
6.6.2 在网格面板上添加记录 123
6.6.3 编辑存在记录 124
6.6.4 删除:在控制器中处理操作列 125
6.6.5 保存变更 125
6.6.6 取消变更 127
6.6.7 清除过滤器 127
6.6.8 在控制器中监听存储器事件 128
6.7 小结 128
第7章 内容管理 129
7.1 管理影片、客户和租借信息 129
7.2 呈现影片数据网格 133
7.2.1 影片模型 133
7.2.2 影片存储器 133
7.2.3 带分页功能的影片数据网格 135
7.2.4 创建控制器 141
7.3 影片网格面板编辑功能 142
7.3.1 Packt.view.sakila.WindowForm 147
7.3.2 影片类别 149
7.3.3 演员信息 154
7.4 影片控制器 159
7.4.1 在编辑表单中加载已有影片
信息 159
7.4.2 获取MultiSelect组件值 160
7.4.3 通过即席搜索获取所选演员 161
7.5 小结 162
第8章 添加额外功能 163
8.1 将网格面板信息导出成PDF和Excel格式 163
8.1.1 导出成PDF格式 164
8.1.2 导出成Excel格式 166
8.2 通过网格打印插件打印网格面板内容 166
8.3 创建影片类别销售图 168
8.3.1 饼图 169
8.3.2 柱状图 170
8.3.3 图表面板 172
8.3.4 更改图表类型 175
8.3.5 图表导出成图片格式(PNG和SVG) 176
8.3.6 图表导出成PDF格式 177
8.4 小结 179
第9章 电子邮件客户端模块 180
9.1 创建收件箱:邮件列表 180
9.1.1 邮件信息模型 181
9.1.2 邮件信息存储器 181
9.1.3 邮件列表视图 182
9.1.4 邮件预览面板 186
9.2 邮件菜单(树形菜单) 187
9.2.1 树形邮件菜单存储器 187
9.2.2 创建邮件菜单视图 188
9.3 邮件容器:组织电子邮件客户端 189
9.4 控制器 191
9.5 组织电子邮件:拖放 193
9.6 创建新邮件 195
9.6.1 动态呈现Cc和Bcc字段 197
9.6.2 动态添加文件上传字段 198
9.7 小结 199
第10章 产品化准备 200
10.1 开始之前 200
10.2 自定义主题 201
10.3 为产品发布打包应用 206
10.3.1 发布成产品的内容 208
10.3.2 产品化的优点 209
10.4 从Web到桌面:Sencha Desktop Packager 210
10.4.1 安装Sencha Desktop Packager 210
10.4.2 应用打包 214
10.4.3 服务器端代码调整 216
10.5 小结 219
第11章 创建WordPress主题 220
11.1 安装WordPress 220
11.2 WordPress主题简介 222
11.3 组织主题结构 223
11.4 构建头部 225
11.5 构建页脚 229
11.6 构建主页面 230
11.7 构建侧边栏 232
11.8 构建单一文章页面 237
11.9 构建单一页面 238
11.10 小结 238
第12章 调试与测试 239
12.1 调试Ext JS应用程序 239
12.2 测试Ext JS应用程序 241
12.2.1 使用Sencha command生成“测试”构造 242
12.2.2 安装Siesta并创建测试用例 243
12.3 有用的工具箱 247
12.4 从Ext JS应用到移动应用 249
12.5 第三方组件和插件 250
12.6 小结 250
· · · · · · (收起)
读后感
用户评价
这本书的编写风格可以说是极其“硬核”且毫不妥协的。如果你期待的是那种用幽默段子和简化概念来快速带你入门的读物,那么《精通Ext JS》可能会让你感到有些吃力。它假定读者已经具备一定的JavaScript和面向对象编程基础,并且毫不留情地深入到Ext JS的内部机制中去。我特别赞赏作者在讲解高级特性,比如自定义渲染器、Ext.create()的工作原理以及Ext JS与后端API交互的异步处理流程时所展现出的专业性。那些涉及到类继承、事件冒泡机制的段落,我反复阅读了好几遍才真正消化。这种深度阅读的体验是难以替代的,它强迫你停下来思考:“这块代码到底在底层做了什么?”书中提供的调试技巧和性能分析的章节,简直是救命稻草,帮我解决了几个困扰我很久的内存泄漏问题。这本书绝对不是一本用来快速应付面试的速查手册,它更像是一份需要你投入时间去“啃食”的专业技术宝典,但一旦你坚持下来,收获是巨大的,你会发现自己对整个前端开发领域的理解都上了一个台阶。
我必须承认,在拿起这本书之前,我对Ext JS的印象还停留在它那略显“厚重”的早期版本时代,总觉得它不如新兴的框架那样轻盈灵活。然而,《精通Ext JS》彻底颠覆了我的认知。这本书的视角非常宏大且深入,它没有回避Ext JS框架的复杂性,而是选择直面并系统性地解析这些复杂性背后的精妙构造。尤其让我印象深刻的是关于“布局管理器”那一章,作者用极其细腻的笔触描绘了Grid布局、HBox/VBox布局在不同场景下的性能差异和适用边界,这在其他任何教程中都是极其罕见的深入程度。它不仅仅教你如何写出能够运行的代码,更重要的是让你理解为什么这样写是最高效、最符合框架精神的。这种由浅入深、由表及里的讲解方式,极大地提升了我对前端架构的思考深度。我发现自己不再是被动地复制粘贴代码片段,而是能够主动地根据应用需求,设计出更健壮、更具可维护性的组件结构。对于那些负责维护大型企业级应用,或者正在规划下一代富客户端应用的技术负责人来说,这本书提供的不仅仅是技术细节,更是一种高级的、系统的思维框架。
这本《精通Ext JS》简直是为我这种渴望深入了解前端框架的开发者量身打造的!我一直对那些构建复杂、企业级Web应用的技术充满好奇,但市面上的资料往往停留在基础的“Hello World”层面,或者过于碎片化。《精通Ext JS》这本书的编排逻辑清晰得令人惊叹,它不是简单地罗列API,而是循序渐进地引导读者理解Ext JS背后的设计哲学。从最初的组件模型和MVC/MVVM架构的彻底剖析,到后期对数据包管理、性能优化乃至主题定制的深入探讨,每一个章节都像是为我揭开了一层又一层的技术迷雾。特别是关于数据绑定和Store管理的讲解,我感觉自己终于理解了为什么在处理海量数据时,Ext JS能保持如此惊人的响应速度。书中的代码示例精准而实用,绝非那种为了凑字数而堆砌的模板代码,它们真实地反映了你在实际项目中会遇到的挑战,并且提供了优雅的解决方案。读完前几章,我就迫不及待地将书中学到的知识应用到我正在维护的一个遗留项目中,效果立竿见影,那原本卡顿的界面仿佛焕发了新生。这本书的价值远超其定价,它更像是一份详尽的实战指南和一本优秀的参考手册的完美结合体。我强烈推荐给所有想要从“会用”迈向“精通”的Web工程师们。
这本书最让我感到惊喜的一点是,它没有沉溺于对Ext JS自身API的孤芳自赏,而是用一种非常现代的视角来审视和运用这个框架。在讲解高级组件配置时,作者时不时地会穿插一些关于现代Web开发趋势的讨论,比如如何更好地集成Webpack或Rollup来优化Ext JS应用的打包流程,以及如何利用现代JavaScript的新特性来改进传统Ext JS代码的可读性。这让整本书读起来一点也不过时,反而充满了前瞻性。我特别欣赏它对“主题”和“外观定制”的讲解,作者清晰地展示了如何通过SCSS变量和CSS覆盖层来实现完全品牌化的用户界面,而不是被Ext JS默认的样式所束缚。这种注重实际工程落地和前沿实践的撰写风格,使得这本书不仅是一本学习资料,更像是一份持续更新的技术路线图。对于那些希望让自己的Ext JS应用在视觉和性能上都达到行业顶尖水平的团队来说,这本书提供的指导是无可替代的,它确保了你的技术栈是既稳健又与时俱进的。
我是一名资深的后端工程师,最近被要求参与到一个前端界面的重构项目中,说实话,Ext JS对我来说是一个相对陌生的领域,我主要的知识体系建立在服务端技术之上。抱着试一试的心态拿起了《精通Ext JS》,没想到它极大地降低了我学习曲线的陡峭程度。这本书的叙述方式非常注重“为什么”而不是仅仅停留在“怎么做”。比如,在介绍Ext JS如何处理跨域请求时,作者不仅给出了解决方案,还详细解释了XMLHttpRequest/Fetch API背后的浏览器安全模型,这对于我这种需要理解整个技术栈的开发者来说至关重要。此外,书中关于Ext JS的组件生命周期管理和DOM操作的抽象层次的讲解,让我这个后端思维的人也能够迅速理解前端视图是如何被高效驱动和渲染的。它用清晰的逻辑,将一个原本看起来庞大复杂的框架,拆解成了可以被理解和掌控的模块单元。特别是关于数据模型与视图层解耦的实践部分,极大地启发了我如何将更严格的领域模型概念带入前端界面的设计中,这对于提升整个项目代码质量非常有帮助。
非常不错,应该是目前市场上能见到的最好的ExtJS教材。
非常不错,应该是目前市场上能见到的最好的ExtJS教材。
非常不错,应该是目前市场上能见到的最好的ExtJS教材。
非常不错,应该是目前市场上能见到的最好的ExtJS教材。
非常不错,应该是目前市场上能见到的最好的ExtJS教材。