具体描述
本书是国内第一本基于 Ext 3.x 的著作。
本书对 Ext JS 的核心知识以及中高级开发者在开发过程中会经常遇到的疑难问题进行了深入分析和探讨。本书不仅详细讲解了 Ext JS 3.0 中新增的用于 Web 2.0 网站开发的核心包 Ext Core,以及给 Ext JS 带来革命性变化的 Ext.Direct,而且还全面透彻地介绍了 Ext.Data.Store、Ext UI、Ext 扩展、Ext 插件和调试等知识。实用性和可操作性强,各个知识点都配 有实用的案例,并给出了最佳实践。全书最后 以一个单页面的大型案例结束,以迭代的方式重现了该案例的实现过程,有助于读者融会贯通,将理论与实践完美结合。
尤为值得一提的是,本书中的主要实例同时包含.NET 和 Java 两个版本,适合所有.NET 开发者和 Java 开发者阅读。
作者简介
黄灯桥 网名“上将军”,从事开发10余年,经验极其丰富。Ext 专家,致力于Ext的研究与推广。2002年开始从事Web开发与相关技术的研究,对各种Web开发技术都有深入了解。不仅是VB和Delphi等的忠实拥趸,而且还擅长C#、ASP.NET和.NET。活跃于各大技术社区,是CSDN的认证专家(http://blog.csdn.net/tianxiaode)。
徐会生 网名“临远”,Family 168创始人之一,Ext 专家。高级软件工程师兼系统架构师,有丰富的Java EE开发经验。在社区里非常活跃,曾经编写和翻译了大量关于Ext和jBPM的资料,深受社区欢迎。..
目录信息
第一部分 Ext Core
第 1 章 Ext Core 重要概念••••••••••••••••2
1.1 Ext.Element•••••••••••••••••••••••••••••••••••••••••2
1.1.1 获取 HTMLElement 节点的 Ext.Element 实例•••••••••••••••••••••••••2
1.1.2 CSS 样式操作•••••••••••••••••••••••••••••3
1.1.3 DOM 查询与遍历•••••••••••••••••••••••4
1.1.4 DOM 操作•••••••••••••••••••••••••••••••••••6
1.1.5 事件处理•••••••••••••••••••••••••••••••••••••9
1.1.6 尺寸大小•••••••••••••••••••••••••••••••••••13
1.1.7 定位功能•••••••••••••••••••••••••••••••••••14
1.1.8 动画功能•••••••••••••••••••••••••••••••••••16
1.1.9 杂项•••••••••••••••••••••••••••••••••••••••••••19
1.2 Ext Core 的 Ajax 功能••••••••••••••••••••••19
1.3 DomQuery 详解••••••••••••••••••••••••••••••••20
1.4 模板介绍 ••••••••••••••••••••••••••••••••••••••••••23
1.5 实用功能 ••••••••••••••••••••••••••••••••••••••••••24
1.6 定时执行代码 ••••••••••••••••••••••••••••••••••25
1.7 本章小结 ••••••••••••••••••••••••••••••••••••••••••26
第 2 章 Ext Core 实例系统 设计•••••••••••••••••••••••••••••••••••••••••••27
2.1 需求分析 ••••••••••••••••••••••••••••••••••••••••••27
2.2 系统设计•••••••••••••••••••••••••••••••••••••••••• 28
2.3 功能结构图•••••••••••••••••••••••••••••••••••••• 29
2.4 开发与运行环境•••••••••••••••••••••••••••••• 31
2.5 数据库设计•••••••••••••••••••••••••••••••••••••• 31
2.6 本章小结•••••••••••••••••••••••••••••••••••••••••• 34
第 3 章 Ext Core 实例— .NET 语言实现 ••••••••••••••••••••• 35
3.1 创建应用并设置开发环境 •••••••••••••• 35
3.2 自定义 Membership 提供程序 •••••••• 37
3.3 创建母版页•••••••••••••••••••••••••••••••••••••• 38
3.4 首页设计•••••••••••••••••••••••••••••••••••••••••• 42
3.5 产品列表页•••••••••••••••••••••••••••••••••••••• 47
3.6 产品详细信息页•••••••••••••••••••••••••••••• 51
3.7 登录对话框•••••••••••••••••••••••••••••••••••••• 56
3.8 用户注册对话框•••••••••••••••••••••••••••••• 61
3.9 购物车对话框•••••••••••••••••••••••••••••••••• 65
3.10 结算•••••••••••••••••••••••••••••••••••••••••••••••• 70
3.11 为产品详细页添加评论••••••••••••••••• 77
3.12 本章小结•••••••••••••••••••••••••••••••••••••••• 84
第 4 章 Ext Core 实例— Java 语言实现 •••••••••••••••••••• 85
4.1 技术选型•••••••••••••••••••••••••••••••••••••••••• 85
4.2 搭建开发环境•••••••••••••••••••••••••••••••••• 85
4.3 设计页面布局 ••••••••••••••••••••••••••••••••••87
4.4 网上商店首页 ••••••••••••••••••••••••••••••••••90
4.5 产品列表页面 ••••••••••••••••••••••••••••••••••98
4.6 产品详细信息页面•••••••••••••••••••••••••105
4.7 登录对话框 ••••••••••••••••••••••••••••••••••••113
4.8 用户注册对话框•••••••••••••••••••••••••••••118
4.9 购物车对话框 ••••••••••••••••••••••••••••••••123
4.10 结算页面 ••••••••••••••••••••••••••••••••••••••126
4.11 为产品添加评论功能•••••••••••••••••••133
4.12 本章小结 ••••••••••••••••••••••••••••••••••••••139
第二部分 Store 和 Direct
第 5 章 在.NET 中使用 Ext.Direct ••••••••••••••••••••••••••••142
5.1 路由器包的内容•••••••••••••••••••••••••••••142
5.2 DIY 一个 Ext.Direct 实例 ••••••••••••••152
5.3 NewtonSoft.JSON•••••••••••••••••••••••••••155
5.3.1 JSON 的序列化和反序
列化••••••••••••••••••••••••••••••••••••••••••155
5.3.2 LINQ to JSON •••••••••••••••••••••••••158
5.3.3 JSON 文本的输出•••••••••••••••••••162
5.4 本章小结 ••••••••••••••••••••••••••••••••••••••••163
第 6 章 在 Java 中使用 Ext.Direct•••••••••••••••••••••••••••••164
6.1 在 Java 平台上配置 Ext.Direct•••••••164
6.1.1 下载 directjngine••••••••••••••••••••••164
6.1.2 配置主控 servlet ••••••••••••••••••••••165
6.1.3 配置客户端 •••••••••••••••••••••••••••••170
6.1.4 编写 JavaScript 调用 远程方法•••••••••••••••••••••••••••••••••172
6.2 为 Ext.Direct 自定义远程方法•••••••••173
6.3 Ext.Direct 中的高级应用••••••••••••••• 178
6.3.1 批量请求和批量响应••••••••••••• 178
6.3.2 在 tree 中使用 Ext.Direct •••••••• 181
6.3.3 为 grid 设置 DirectStore•••••••••• 183
6.3.4 在 form 中使用 Ext.Direct 加载数据 ••••••••••••••••••••••••••••••••• 185
6.3.5 在 form 中使用 Ext.Direct 提交数据••••••••••••••••••••••••••••••••• 187
6.3.6 使用 polling 方式进行轮询•••• 189
6.4 本章小结•••••••••••••••••••••••••••••••••••••••• 191
第 7 章 Store •••••••••••••••••••••••••••••••••••••• 192
7.1 Store 的结构••••••••••••••••••••••••••••••••••• 192
7.2 Ext.data.Field•••••••••••••••••••••••••••••••••• 197
7.3 Ext.data.Record•••••••••••••••••••••••••••••• 198
7.4 ArrayReader、JsonReader 和 XmlReader••••••••••••••••••••••••••••••••••••• 199
7.4.1 JsonReader •••••••••••••••••••••••••••••• 200
7.4.2 ArrayReader•••••••••••••••••••••••••••• 200
7.4.3 XmlReader •••••••••••••••••••••••••••••• 201
7.5 Store 的加载数据••••••••••••••••••••••••••• 201
7.6 Store 的数据操作••••••••••••••••••••••••••• 203
7.6.1 添加数据••••••••••••••••••••••••••••••••• 203
7.6.2 删除数据••••••••••••••••••••••••••••••••• 203
7.6.3 搜索、定位和统计••••••••••••••••• 203
7.6.4 更新数据••••••••••••••••••••••••••••••••• 206
7.6.5 排序 •••••••••••••••••••••••••••••••••••••••• 207
7.7 DataProxy••••••••••••••••••••••••••••••••••••••• 208
7.8 DirectStore ••••••••••••••••••••••••••••••••••••• 209
7.9 DataWriter•••••••••••••••••••••••••••••••••••••• 212
7.10 Ext.data.Api•••••••••••••••••••••••••••••••••• 212
7.11 本章小结•••••••••••••••••••••••••••••••••••••• 213
第三部分 Ext-UI
第 8 章 Ext 用户界面控件••••••••••••••216
8.1 布局••••••••••••••••••••••••••••••••••••••••••••••••216
8.1.1 在 FormPanel 中使用 HBoxLayout 进行布局••••••••••••216
8.1.2 在 FormPanel 中使用 HBoxLayout 和 VBoxLayout 进行布局•••••••••••••••••••••••••••••••••219
8.1.3 Panel 的 body 的样式范围•••••••••••••••••••••••••••••••••••••••••224
8.2 Form 表单组件•••••••••••••••••••••••••••••••226
8.2.1 DisplayField 控件••••••••••••••••••••226
8.2.2 在 FormPanel 中使用TabPanel ••••••••••••••••••••••••••••••••••229
8.2.3 DirectLoad 与 DirectSubmit ••••••••••••••••••••••••••••232
8.2.4 使用 DirectSubmit 上传文件•••••••••••••••••••••••••••••••••••••••••235
8.3 Grid 组件••••••••••••••••••••••••••••••••••••••••238
8.3.1 一个结合 DataWrite 和 RowEditor 的 Grid 示例••••••••••238
8.3.2 在 CRUD 操作中 restful 的 设置以及使用 Ext.Direct 的问题•••••••••••••••••••••••••••••••••••••••••247
8.4 ListView 控件•••••••••••••••••••••••••••••••••248
8.5 本章小结 ••••••••••••••••••••••••••••••••••••••••251
第四部分 Ext 扩展和 Ext 插件
第 9 章 Ext 扩展 •••••••••••••••••••••••••••••••254
9.1 利用 Ext.extend 实现继承••••••••••••••254
9.2 与 Ext 扩展相关的预备知识••••••••• 256
9.2.1 定义命名空间••••••••••••••••••••••••• 256
9.2.2 重写构造函数••••••••••••••••••••••••• 257
9.2.3 继承组件的一些准备••••••••••••• 257
9.2.4 常用的辅助函数••••••••••••••••••••• 258
9.2.5 使用 xtype••••••••••••••••••••••••••••••• 258
9.3 实现一个功能完整的增、删、查、改表格控件 ••••••••••••••••••••••••••• 259
9.3.1 扩展 GridPanel •••••••••••••••••••••••• 259
9.3.2 配置列模型••••••••••••••••••••••••••••• 259
9.3.3 配置显示数据••••••••••••••••••••••••• 260
9.3.4 点缀 EasyGrid••••••••••••••••••••••••• 261
9.3.5 实现添加一条记录的功能••••••••• 262
9.3.6 实现修改一条记录的功能••••••••• 264
9.3.7 实现删除一条记录的功能••••••••• 266
9.4 从头实现 Ext 扩展•••••••••••••••••••••••• 270
9.5 本章小结•••••••••••••••••••••••••••••••••••••••• 274
第 10 章 Ext 插件 ••••••••••••••••••••••••••••• 275
10.1 插件的用法•••••••••••••••••••••••••••••••••• 275
10.2 标签页右键菜单TabCloseMenu••••••••••••••••••••••••••••• 276
10.3 面板最大化 MaximizeTool •••••••••• 278
10.4 分页设置 PageSizePlugin •••••••••••• 282
10.5 行数据扩展 RowExpander••••••••••• 284
10.6 本章小结•••••••••••••••••••••••••••••••••••••• 290
第五部分 调试
第 11 章 调试•••••••••••••••••••••••••••••••••••••• 292
11.1 测试 Ext.Element 的功能••••••••••••• 292
11.1.1 获取 Ext.Element 实例•••••••••• 292
11.1.2 测试 CSS 样式操作 •••••••••••••• 294
11.1.3 测试 DOM 操作 ••••••••••••••••••••296
11.1.4 测试 DOM 查询与遍历•••••••••300
11.1.5 测试事件处理••••••••••••••••••••••••302
11.2 结合 DataWrite 和 RowEditor
的 Grid 的调试过程••••••••••••••••••••••303
11.3 本章小结 ••••••••••••••••••••••••••••••••••••••306
第六部分 实例
第 12 章 单页面应用实例系统分析 •••••••••••••••••••••••••••308
12.1 系统分析 ••••••••••••••••••••••••••••••••••••••308
12.2 系统设计 ••••••••••••••••••••••••••••••••••••••308
12.2.1 单页面应用设计的难点••••••••308
12.2.2 开发与运行环境••••••••••••••••••••309
12.2.3 数据库设计 •••••••••••••••••••••••••••309
12.3 各个模块的详细功能说明 •••••••••••311
12.3.1 登录页面 •••••••••••••••••••••••••••••••311
12.3.2 主页面•••••••••••••••••••••••••••••••••••311
12.3.3 角色管理 •••••••••••••••••••••••••••••••311
12.3.4 用户管理 •••••••••••••••••••••••••••••••312
12.3.5 进仓管理 •••••••••••••••••••••••••••••••312
12.3.6 出仓管理 •••••••••••••••••••••••••••••••313
12.3.7 产品管理 •••••••••••••••••••••••••••••••313
12.3.8 库存统计 •••••••••••••••••••••••••••••••314
12.3.9 修改密码 •••••••••••••••••••••••••••••••314
12.4 本章小结 ••••••••••••••••••••••••••••••••••••••314
第 13 章 单页面应用实例—.NET 语言实现 •••••••••••••••••315
13.1 创建应用并设置开发环境 •••••••••••315
13.2 自定义 Membership 提供程序••••••••••••••••••••••••••••••••••••••••• 317
13.3 登录页•••••••••••••••••••••••••••••••••••••••••• 319
13.4 主页面•••••••••••••••••••••••••••••••••••••••••• 324
13.5 Ext.Direct 的 API 句柄 •••••••••••••••• 329
13.6 修改密码对话框 •••••••••••••••••••••••••• 330
13.7 角色管理模块•••••••••••••••••••••••••••••• 333
13.8 用户管理•••••••••••••••••••••••••••••••••••••• 345
13.9 产品管理•••••••••••••••••••••••••••••••••••••• 356
13.10 进仓管理•••••••••••••••••••••••••••••••••••• 367
13.11 出仓管理•••••••••••••••••••••••••••••••••••• 388
13.12 库存统计•••••••••••••••••••••••••••••••••••• 403
13.13 退出页•••••••••••••••••••••••••••••••••••••••• 407
13.14 权限设置•••••••••••••••••••••••••••••••••••• 408
13.15 本章小结•••••••••••••••••••••••••••••••••••• 409
第 14 章 单页面应用实例——Java 语言实现•••••••••••••••• 410
14.1 技术选型•••••••••••••••••••••••••••••••••••••• 410
14.2 搭建开发环境•••••••••••••••••••••••••••••• 411
14.3 配置 Ext.Direct••••••••••••••••••••••••••••• 413
14.4 用户登录页面•••••••••••••••••••••••••••••• 417
14.5 系统主页面与动态菜单 •••••••••••••• 421
14.6 用户管理模块•••••••••••••••••••••••••••••• 427
14.7 角色管理模块•••••••••••••••••••••••••••••• 439
14.8 产品管理模块•••••••••••••••••••••••••••••• 447
14.9 进仓管理模块•••••••••••••••••••••••••••••• 450
14.10 出仓管理模块•••••••••••••••••••••••••••• 460
14.11 库存统计模块•••••••••••••••••••••••••••• 474
14.12 用户修改密码窗口 •••••••••••••••••••• 479
14.13 用户注销•••••••••••••••••••••••••••••••••••• 482
14.14 本章小结•••••••••••••••••••••••••••••••••••• 483
· · · · · · (收起)
读后感
作为策划编辑,在自己的每一本书上市之前,心里总会打鼓,因为不知道读者的评价到底会怎么样,不知道这本书对读者来说到底有没有价值,只有经过市场的检验才知道。 这本书上市已经有几天了,上市前也在一些社区里发布了样章,从社区、QQ群、网上书店、线下活动中的一些反馈来...
各位朋友,如果你们想就此书与本书作者和其他读者交流,欢迎加入华章俱乐部。 http://groups.google.com/group/HZBook-for-readers-and-authors
在JavaEye和博客园看到有不少人在讨论这本书,但是过了这么久也不见上市。 从目录上来看,这本书不错,很多知识点都是高级话题,一般的书都没有提及,等出来搞本来看看。
刚刚一个下午没有看,咱们这本书在互动网上就飙升到前5名了,不少朋友都说里面有 他们需要的内容,谢谢大家!
在JavaEye和博客园看到有不少人在讨论这本书,但是过了这么久也不见上市。 从目录上来看,这本书不错,很多知识点都是高级话题,一般的书都没有提及,等出来搞本来看看。
用户评价
初接触这本书时,我差点被它的深度劝退。它对Ext JS框架内部机制的剖析,已经深入到了JavaScript原型链和闭包的深层应用层面。我记得有一章专门讲解了框架如何实现其声明式配置的动态编译和对象生命周期管理,那段内容简直可以拿去做大学计算机专业的编译原理课程案例了。作者似乎对Ext JS的源代码了如指掌,他不仅仅是描述“What”,更重点阐述了“Why”和“How”。例如,在讲解自定义组件开发时,它没有直接给出代码片段,而是先花了大量篇幅解释了框架的组件化渲染流程、脏检查机制以及渲染器的优化策略。这迫使我不得不停下来,去反思自己过去写代码时那些“想当然”的做法。这本书的价值在于,它让你从一个被动的使用者,转变为一个能够理解并潜在改进框架的使用者。对于追求极致工程化和技术深度的同行而言,这本书的知识密度,绝对值回票价,甚至可以说是无价的。
哇,刚刚翻完这本《Ext JS高级程序设计》,感觉脑子被狠狠地“洗”了一遍!说实话,我本来对Ext JS的应用已经算小有心得,以为自己能轻松驾驭书中的内容,结果这本书完全颠覆了我的预期。它没有那种堆砌API文档的枯燥感,而是像一位经验丰富的老船长,带着你深入那片波涛汹涌的JavaScript海洋。我特别喜欢其中关于性能优化的章节,讲解得极其细致入微,尤其是在处理海量数据Grid时,作者不仅仅是罗列了`buffered rendering`,而是深入剖析了其背后的DOM操作机制和浏览器渲染管线的交互,甚至还给出了实战中遇到内存泄漏的排查思路和解决方案。那感觉就像是,我一直以为我只会开船,但这本书让我明白了船身结构的每一个铆钉是怎么固定的,甚至还能自己动手去修改船的龙骨。对于那些想要从“会用”跃升到“精通”的开发者来说,这本书绝对是一剂猛药,让你对现代前端框架的底层逻辑有一个全新的、更为深刻的认识。它不是那种速成手册,而是一本需要沉下心来,边敲代码边研读的“武功秘籍”,读完后,看其他框架的源码都会带着一种洞察力。
坦白说,读完《Ext JS高级程序设计》之后,我最大的感受是“通透”。很多我在实际开发中遇到的那些悬而未决的性能瓶颈或者难以调试的边界问题,在这本书里都找到了清晰的解释和优雅的解决方案。它的语言风格介于严谨的学术论文和经验丰富的导师指导之间,既有对底层原理的精准把握,又不失亲切和启发性。特别是在介绍高级主题,比如自定义主题的CSS变量管理和主题切换的性能考量时,作者展示了对用户体验细节的极致追求。他没有仅仅停留在让界面“能用”的层面上,而是深入到如何让界面“高效且美观”地运行。这本书就像一面高清的镜子,照出了我过去代码中存在的各种冗余和低效的模式,并指明了优化方向。对于那些希望在Ext JS技术栈上建立起稳固且前瞻性的知识体系的开发者来说,这本书绝对是必读的参考书目,它提供的知识深度和广度,足以支撑未来几年内你在该领域内的技术决策和创新。
这本书的结构安排颇具匠心,它没有采用线性的、按部就班的章节顺序,而是采用了一种模块化的、以解决实际问题为导向的编排方式。我发现自己可以根据当前手头的工作难点,快速定位到相应的章节进行深入研读,而不是必须从头读到尾。比如,当我在处理跨域通信和安全认证模块时,书中关于Ext JS如何利用其内置的Proxy和Request管理器,结合Session管理实现无缝的企业级认证流程的讲解,简直是雪中送炭。它深入探讨了权限校验、Token刷新等敏感操作在前端的实现最佳实践,并且巧妙地融入了当时最新的Web安全标准。这种高度贴合实际企业级应用需求的深度剖析,让这本书的实用价值大大超越了普通的技术书籍。它更像是一本“企业级应用架构师的工具箱”,里面装的不是螺丝刀,而是能拧开最复杂螺母的特种扳手。阅读过程中,我不断地在脑海中构建自己的项目架构图,并将书中的理念进行映射和校验。
说真的,市面上关于前端框架的书籍汗牛充栋,大多都是浅尝辄止,教你怎么搭个界面,做个CRUD就算完事大吉。但《Ext JS高级程序设计》这本书,它走的绝对是硬核路线,让我这个老前端都感到压力山大,但同时也收获巨大。它的叙述风格非常严谨,逻辑链条清晰得令人发指,仿佛作者在每一个技术点背后都画了层层递进的思维导图。我尤其欣赏它对MVC/MVVM架构在大型企业级应用中遇到的实际问题的探讨。很多理论书里写得天花乱坠,真到项目里,状态管理一复杂就一团糟。这本书里却坦诚地剖析了Ext JS框架自身在这些复杂场景下的设计权衡(Trade-offs),并指导我们如何利用其内置的机制,比如强大的数据绑定和事件系统,来构建一个真正高内聚、低耦合的复杂应用。那种感觉,就像是阅读一份经过无数次实战检验的工程规范,而不是一本简单的教程。如果你只是想学个皮毛,快速做个展示页面,这本书可能会让你觉得有点“重”,但如果你想把Ext JS用在决定公司命运的核心系统上,这本书就是你的“定海神针”。
主要介绍了Ext-JS 3 里面的一些新功能, 例如Ext-Direct之类. 不是EXT 的入门数据.
ext js 已经4.0了 api发生了很大的变化,更oo了,像个容器一样,你定义一堆东西,放进去,想用了就拿出来。 这本书是3.x,互联网技术要与时俱进,所以最快的方式就是看英文的文档了。 还有这本书写了很多后台的东西,一会.net,一会java 占了书的一大部分。
一般般吧,不管从深度还是广度上看,都不太称得上“高级”:(
只是概览性的介绍了ExtJS的各个功能模块,需要做高级的应用还是看官方文档最权威
ext js 已经4.0了 api发生了很大的变化,更oo了,像个容器一样,你定义一堆东西,放进去,想用了就拿出来。 这本书是3.x,互联网技术要与时俱进,所以最快的方式就是看英文的文档了。 还有这本书写了很多后台的东西,一会.net,一会java 占了书的一大部分。