出版时间:201005 出版社:人民邮电出版社 作者:何启伟,徐会生,康爱媛 页数:488
Tag标签:无
前言
再次拿起书稿,距离本书第一版的出版已是一年有余,很高兴看到EXT依然在不断向前发展,国内的EXT开发者也越来越多。这些事实都证明了RIA的活力和前景,无论是最终客户还是开发者都期待在B/S结构中获得更加灵活而又强大的功能。这一年中,我们接触、实践、改造也放弃了许多基于EXT的应用系统,这些经验让我们对EXT的原理和应用场景都有了更多的认识和感触。我们也希望将这些积累的经验与大家共享,共同提高。这次改版的主要目的是将书中的内容从EXT2.x版本升级到EXT3.x,并对上一版中的内容进行增补。实际上,EXT2.x至3.x的版本升级并没有为我们带来阵痛,绝大部分EXT2.x中的功能依然可以在EXT3.x中使用,这对开发者来说是一个很好的消息,意味着系统升级会简单许多,我们只需要考虑是否为原有系统添加EXT3.x版本中新加入的特性就可以了,原有的功能依然可以正常使用。这对我们也是一个好消息,在书的改版过程中,可以把精力更多集中在对新功能的介绍上。我们对这一版新增的内容充满了信心,无论是对EXT3.x中新增功能的介绍,还是在原有内容基础上进行的扩充都闪烁着耀眼的光芒。大家可以看到如何在EXT中使用漂亮的图表,可以尽情感叹EXT在性能方面实现的巨大突破,还有各种各样的绚丽组件,先不管它们好用不好用,只看到它们的显示效果就足够我们惊叹了。不得不提的是,随着企业对EXT的应用规模逐渐变大,如何对原有功能进行扩展,如何编写自定义组件,如何使用插件等问题开始慢慢浮出水面。我们很高兴看到更多开发者加入到定制EXT组件的行列中,希望这一版中对用户扩展和插件的介绍及实例能够帮助大家一睹EXT定制组件的风采。任何想学习EXT的开发者都可以通过这本书快速入门。书中包含的所有功能都配有实例,大部分实例都可以直接在本地使用浏览器打开。对于一些必须使用后台脚本支持的实例,我们也尽量使用最简单的后台脚本实现,避免初学者被复杂的配置和框架应用混淆了视听。大多数实例都可以在本地直接运行,打开随书光盘中的ext-3.0.0/examples文件夹,可以看到书中每一章内容都对应了一个单独的文件夹(如第3章对应的文件夹为03.grid),打开对应的文件夹,双击其中的HTML文件就可以使用浏览器运行实例。对于那些需要后台脚本支持的实例,需要先确保本机安装了JDK并正确配置了环境变量,然后进入随书光盘中的apache-tomcat-5.5.28目录下,执行bin目录下的startup.bat批处理文件,当服务器启动完成后即可使用浏览器访问实例了。EXT与AIR的相关实例都放在随书光盘的air目录下,在运行这些实例之前要在本机安装AdobeAIRSDK,然后执行实例中的脚本即可运行实例。光盘中除了书中所述功能的实例之外,我们还额外附加了一些工作流引擎(jBPM4.x)的演示视频。jBPM4是family168下一步的发展方向,我们在jBPM4.x之上开发的应用也都使用EXT来实现前台的布局与展现,希望为大家拓展视野。最后,我们还要感谢人民邮电出版社图灵公司对我们的支持,因为有他们的支持和帮助,我们才能顺利完成本书的改版工作。希望大家能够喜欢《深入浅出ExtJS》(第2版)。
内容概要
以用户为中心的时代,应用的界面外观变得越来越重要。然而,很多程序员都缺乏美术功底,要开发出界面美观的应用实属不易。Ext JS的出现,为广大程序员解决了这一难题。它有丰富多彩的界面和强大的功能,是开发具有炫丽外观的RIA应用的最佳选择。 本书是《深入浅出Ext JS》的升级版,涵盖了最新发布的Ext JS 3.2新特性,并对上一版的内容进行增补,充实了示例代码,同时补充了两个功能强大的实例。特别是新增了如何优化基于EXT的应用,提升加载速度,如何创建用户扩展组件以及常用的第三方扩展件等内容。大家可以看到如何在EXT中使用漂亮的图表,尽情欣赏EXT在性能方面实现的巨大突破,以及各种各样的绚丽组件。 本书注重理论与实践相结合,适合各层次Web开发人员阅读。
作者简介
徐会生,高级软件工程师兼系统架构师,资深Java EE开发专家。他是国内探索Ext JS的先驱之一,精通UI开发,业余时间为Family168(www.family168.com)撰写了大量开源方面的教程。
书籍目录
第1章 EXT概述 1.1 EXT版本变迁 1.2 下载EXT发布包 1.3 如何查看EXT自带的API和示例 1.4 为什么有些示例必须放在服务器上才能看到效果 1.5 Hello World 1.5.1 直接使用下载的发布包 1.5.2 在项目中使用EXT 1.6 为什么页面提示“找不到图片” 1.7 辅助开发 1.7.1 调试工具Firebug 1.7.2 开发利器Spket 1.8 小结 第2章 EXT框架基础 2.1 EXT的事件和类 2.1.1 自定义事件 2.1.2 浏览器事件 2.1.3 Ext.lib.Event 2.1.4 Ext.util.Observable 2.1.5 Ext.EventManager 2.1.6 Ext.EventObject 2.2 EXT的核心组件 2.2.1 Ext.Component 2.2.2 Ext.BoxComponent 2.2.3 Ext.Container 2.2.4 Ext.Panel 2.2.5 Ext.TabPanel 2.3 小结 第3章 表格控件 3.1 表格的特性简介 3.2 制作一个简单的表格 3.3 表格常用功能详解 3.3.1 部分属性功能 3.3.2 自主决定每列的宽度 3.3.3 让表格支持按列排序 3.3.4 解决中文排序 3.3.5 显示日期类型数据 3.4 表格渲染 3.5 给表格的行和列设置颜色 3.6 自动显示行号和复选框 3.6.1 自动显示行号 3.6.2 复选框 3.7 选择模型 3.8 表格视图——Ext.grid.GridView 3.9 表格分页 3.9.1 为表格添加分页工具条 3.9.2 通过后台脚本获得分页数据 3.9.3 分页工具条显示在表格的顶部 3.9.4 让EXT支持前台分页 3.10 后台排序 3.11 可编辑表格控件——EditorGrid 3.11.1 制作一个简单的EditorGrid 3.11.2 添加一行数据 3.11.3 保存修改结果 3.11.4 验证EditGrid中的数据 3.11.5 限制输入数据的类型 3.12 属性表格控件——PropertyGrid 3.12.1 PropertyGrid 3.12.2 只能看不能动的PropertyGrid 3.12.3 强制对name列排序 3.12.4 根据name获得value 3.12.5 自定义编辑器 3.13 分组表格控件——Group 3.13.1 分组表格简介 3.13.2 分组表格视图Ext.grid.GroupingView 3.14 可拖放的表格 3.14.1 拖放改变表格的大小 3.14.2 在同一个表格里拖放 3.14.3 表格之间的拖放 3.14.4 表格与树之间的拖放 3.15 表格与右键菜单 3.16 小结 第4章 表单与输入控件 4.1 制作表单 4.2 FormPanel和BasicForm详解 4.3 EXT支持的控件 4.3.1 控件继承图 4.3.2 表单控件 4.3.3 基本输入控件Ext.form.Field 4.3.4 文本输入控件Ext.form.TextField 4.3.5 多行文本输入控件Ext.form.TextArea 4.3.6 日期输入控件Ext.form.DateField 4.3.7 时间输入控件Ext.form.TimeField 4.3.8 在线编辑器Ext.form.HtmlEditor 4.3.9 隐藏域Ext.form.Hidden 4.3.10 下拉输入框Ext.form.TriggerField 4.4 使用表单提交数据 4.4.1 EXT默认的提交形式 4.4.2 使用HTML原始的提交形式 4.4.3 单纯Ajax 4.5 数据校验 4.5.1 输入不能为空 4.5.2 最大长度和最小长度 4.5.3 借助vtype 4.5.4 自定义校验规则 4.5.5 算不上校验的NumberField 4.5.6 使用后台返回的校验信息 4.6 表单布局 4.6.1 默认的平铺布局 4.6.2 平行分列布局 4.6.3 在布局中使用fieldset 4.6.4 在fieldset中使用布局 4.6.5 自定义布局 4.7 ComboBox详解 4.7.1 ComboBox简介 4.7.2 将Select转换成ComboBox 4.7.3 ComboBox结构详解 4.7.4 ComboBox读取远程数据 4.7.5 ComboBox的高级配置 4.7.6 监听用户选择的数据 4.7.7 使用本地数据实现省、市、县级联 4.7.8 使用后台数据实现省、市、县级联 4.8 复选框和单选框 4.8.1 复选框 4.8.2 单选框 4.9 文件上传 4.10 自动把数据填充到表单中 4.11 小结 第5章 树形结构 5.1 TreePanel的基本使用 5.1.1 创建一棵树 5.1.2 为树生枝展叶 5.1.3 树形的配置 5.1.4 使用TreeLoader获得数据 5.1.5 读取本地JSON数据 5.1.6 与Struts 进行集成 5.1.7 使用JSP提供后台数据 5.2 树的事件 5.3 右键菜单 5.4 修改节点的默认图标 5.5 从节点弹出对话框 5.6 节点提示信息 5.7 为节点设置超链接 5.8 直接修改树节点名称 5.9 树形的拖放 5.9.1 节点拖放的3种形式 5.9.2 叶子不能append 5.9.3 判断拖放的目标 5.9.4 树之间的拖放 5.10 树形过滤器TreeFilter 5.11 利用TreeSorter对树进行排序 5.12 树形节点视图——Ext.tree.TreeNodeUI 5.13 表格与树形的结合——Ext.ux.tree.ColumnTree 5.14 小结 第6章 拖放 6.1 拖放简介 6.2 拖放的简单应用 6.3 拖放组件体系 6.4 拖放的事件 6.5 高级拖放 6.5.1 基础 6.5.2 控制柄 6.5.3 总在最上面 6.5.4 代理 6.5.5 分组 6.5.6 网格 6.5.7 拖动圆形 6.5.8 拖动范围 6.6 小结 第7章 弹出窗口 7.1 Ext.MessageBox 7.1.1 Ext.MessageBox.alert() 7.1.2 Ext.MessageBox.confirm() 7.1.3 Ext.MessageBox.prompt() 7.2 对话框的更多配置 7.2.1 可以输入多行的输入框 7.2.2 自定义对话框的按钮 7.2.3 进度条 7.2.4 动画效果 7.3 Ext.window的常用属性 7.3.1 创建窗口 7.3.2 窗口的最大化和最小化 7.3.3 窗口的隐藏与销毁 7.3.4 防止窗口超出浏览器 7.3.5 设置窗口中的按钮 7.3.6 窗口的其他配置选项 7.4 窗口分组 7.5 向窗口中放入各种控件 7.5.1 在窗口中加入表格 7.5.2 在窗口中加入表单 7.5.3 复杂布局 7.6 小结 第8章 布局 8.1 布局的用途 8.2 最简单的布局——FitLayout 8.3 常用的边框布局——BorderLayout 8.3.1 设置子区域的大小 8.3.2 使用split并限制它的范围 8.3.3 子区域的展开和折叠 8.4 制作伸缩菜单的布局——Accordion 8.5 实现操作向导的布局——CardLayout 8.6 控制位置和大小的布局——AnchorLayout和AbsoluteLayout 8.7 表单专用的布局FormLayout 8.8 分列式的布局ColumnLayout 8.9 表格状的布局TableLayout 8.10 与布局相关的其他知识 8.10.1 超类Ext.Container的公共配置与xtype的概念 8.10.2 layout的超类Ext.layout. ContainerLayout 8.10.3 不指定任何布局时会发生的情况 8.10.4 使用Viewport对整个页面进行布局 8.10.5 使用嵌套实现复杂布局 8.11 BoxLayout 8.12 小结 第9章 工具条和菜单 9.1 简单菜单 9.2 向菜单中添加分隔线 9.3 多级菜单 9.4 高级菜单 9.4.1 多选菜单和单选菜单 9.4.2 日期菜单 9.4.3 颜色菜单 9.4.4 在菜单中添加其他组件 9.4.5 使用Ext.menu.MenuMgr统一管理菜单 9.5 工具条组件详解 9.5.1 Ext.Toolbar.Button 9.5.2 Ext.Toolbar.TextMenu 9.5.3 Ext.Toolbar.Spacer 9.5.4 Ext.Toolbar.Separator 9.5.5 Ext.Toolbar.Fill 9.5.6 Ext.SplitButton 9.5.7 为工具条添加HTML标签 9.5.8 为工具条添加输入控件 9.6 分页工具条Ext.PagingToolbar 9.6.1 Ext.PagingToolbar的基本用法 9.6.2 向Ext.PagingToolbar添加按钮组件 9.7 右键弹出菜单 9.8 小结 第10章 数据存储与传输 10.1 Ext.data命名空间下常用组件简介 10.2 Ext.data.Connection 10.3 Ext.data.Record 10.4 Ext.data.Store 10.4.1 基本应用 10.4.2 对数据进行排序 10.4.3 从store中获取数据 10.4.4 更新store中的数据 10.4.5 加载及显示数据 10.4.6 其他功能 10.5 常用proxy 10.5.1 MemoryProxy 10.5.2 HttpProxy 10.5.3 ScriptTagProxy 10.6 常用Reader 10.6.1 ArrayReader 10.6.2 JsonReader 10.6.3 XmlReader 10.7 高级store 10.8 EXT中的Ajax 10.8.1 最容易看到的Ext.Ajax 10.8.2 Ext.lib.Ajax是更底层的封装 10.9 关于scope和createDelegate() 10.10 DWR与EXT整合 10.10.1 在EXT中直接使用DWR 10.10.2 DWRProxy 10.10.3 DWRTreeLoader 10.10.4 DWRProxy和ComboBox 10.11 localXHR支持本地使用Ajax 10.12 小结 第11章 实用工具 11.1 EXT提供的常用函数 11.1.1 onReady函数 11.1.2 get函数 11.1.3 query函数和select函数 11.1.4 encode函数和decode函数 11.1.5 extend函数 11.1.6 apply函数和applyIf函数 11.1.7 namespace函数 11.1.8 Ext.isEmpty函数 11.1.9 Ext.each函数 11.1.10 Ext.DomQuery 11.2 使用DomHelper和Template动态生成HTML 11.2.1 使用DomHelper生成小片段 11.2.2 Ext.DomHelper.applyStyles函数 11.2.3 Template(模板) 11.2.4 Ext.DomHelper.createTemplate函数 11.2.5 复杂模板XTemplate 11.3 用Ext.Utils.CSS切换主题 11.4 悬停提示 11.4.1 初始化 11.4.2 注册提示 11.4.3 标签提示 11.4.4 全局配置 11.4.5 个体配置 11.5 使用Ext.state保存状态 11.6 使用fx实现的动画效果 11.7 局部更新网页内容 11.8 使用Ext.util.Format对数据进行格式化 11.9 使用Ext.util.CSS管理CSS样式 11.10 使用Ext.util.ClickRepeater处理点击事件 11.11 使用Ext.util.DelayedTask延时执行函数 11.12 使用Ext.util.TaskRunner执行循环任务 11.13 混合型集合Ext.util.MixedCollection 11.14 使用Ext.util.TextMetrices获得文本所占的高度和宽度 11.15 使用Ext.KeyNav处理导航按键 11.16 使用Ext.KeyMap为对象绑定按键功能 11.17 扩展 11.17.1 扩展Date 11.17.2 扩展String 11.17.3 扩展Function 11.17.4 扩展Number 11.17.5 扩展Array 11.18 门户组件Ext.ux.Portal 11.19 桌面组件Ext.Desktop 11.20 小结 第12章 一个完整的EXT应用 12.1 确定整体布局 12.2 使用HTML和CSS设置静态信息 12.3 对学生信息进行数据建模 12.4 在页面中显示学生信息列表 12.5 添加表单编辑学生信息 12.6 为表单添加提交事件 12.7 清空表单信息 12.8 删除指定的学生信息 12.9 在表格和表单之间进行数据交互 12.10 提升加载速度 12.10.1 对JavaScript文件进行压缩混淆 12.10.2 使用客户端缓存 12.10.3 使用GZIP压缩 12.11 小结 第13章 复杂实例 13.1 VIP客户统计系统 13.2 Tracker任务跟踪系统 13.3 小结 第14章 EXT 3.x中的新特性 14.1 介绍Ext Core 14.1.1 adapter 14.1.2 core 14.1.3 data 14.1.4 util 14.1.5 扩展实例 14.2 介绍Ext Direct 14.2.1 Ext Direct 14.2.2 洞悉Ext Direct的原理 14.2.3 使用directjngine支持Ext Direct 14.3 介绍EXT 3.0中新增的组件 14.3.1 行编辑器 14.3.2 进度条分页组件 14.3.3 缓冲式表格视图 14.3.4 标签面板的滚动菜单 14.3.5 处理工具条溢出 14.3.6 列表视图 14.3.7 工具条中的分组按钮 14.3.8 高级按钮 14.3.9 竖直分组的标签面板 14.4 在EXT 3.0中使用Flash报表 14.4.1 柱状图 14.4.2 横向柱状图 14.4.3 折线图 14.4.4 饼状图 14.4.5 柱状栈图 14.4.6 横向柱状栈图 14.4.7 混合图 14.5 EXT 3.1带来的新特性 14.5.1 解决内存泄露 14.5.2 核心组件优化 14.5.3 分组表头 14.5.4 锁定列 14.5.5 树形表格 14.5.6 竖直布局 14.5.7 高级表格查询 14.5.8 自定义编辑器 14.6 EXT 3.2带来的新特性 14.6.1 多重排序 14.6.2 为DataView添加动画变换效果 14.6.3 组合表单控件 14.6.4 滑动条表单控件 14.6.5 为滑动条指定多个滑块 14.6.6 更多工具条插件 14.6.7 新主题Accessibility 14.7 小结 第15章 用户扩展与插件 15.1 介绍用户扩展 15.2 编写用户扩展所需的基础知识 15.2.1 继承模型 15.2.2 了解Component的生命周期 15.3 编写自定义用户扩展 15.4 介绍EXT的插件体系 15.5 常用扩展组件(一)UploadDialog 15.6 常用扩展组件(二)ManagedIFrame 15.7 小结 附录A EXT常见问题 附录B EXT对AIR的支持 附录C EXT的版本变迁
章节摘录
插图:第1章 EXT概述 1.4 为什么有些示例必须放在服务器上才能看到效果有些示例用Ajax从后台读取数据,如果该示例不在服务器上,Ajax就会一直返回失败状态,从而无法获得任何数据,所以就看不到正确的效果。不过,在www.extjs.com网站的论坛上曾经有人写了localXHR,可以通过Ajax方式从本地文件系统获得数据,这样也许就可以摆脱服务器的束缚了。随书代码中包含了localXHR.js,直接将此文件复制到你的应用中,即可实现使用Ajax从本地文件系统中直接获得数据。1.5 Hello World为初学者考虑,我们提供了两个入门版的Hello World范例。1.5.1 直接使用下载的发布包如果你已经下载TEXT的zip格式的发布包,那么可根据如下步骤来使用它。(1)将该发布包解压缩,其目录结构应该如图1-2所示,各目录的用途简要介绍如下。adapter目录下是EXT的核心代码和底层库,包括jQuery、Prototype和YUI的适配器。does目录下是EXT的文档,其实最主要和最重要的是EXT的API,EXT开发中离不开它。examples目录下是官方的演示示例,是初学者学习EXT的最佳途径之一。pkgs目录下是EXT压缩后的代码,经过压缩的代码,体积更小,加载更快。resources目录下是EXT要用到的图片文件和样式文件,EXT绚丽的外观全部由这个目录中的文件控制。
媒体关注与评论
“本书是《深入浅出Ext JS》的升级版,秉承了上一版的内容翔实、可操作性极强等特点,同时涵盖了Ext JS 3.x的新特性,为Ajax社区增添了耀眼光辉。” ——Ajax中国,国内权威的Ajax专业门户“要想全面了解和掌握Ext JS,强烈推荐阅读《深入浅出Ext JS》(第2版)。本书增补了上一版的示例代码,并包含了提升加载速度、创建用户扩展组件等内容。非常值得阅读!” ——DOJO中国,著名开源技术社区 “本书第1版出版后,好评如潮,销售火爆!这次升级,延续了上一版本的优点,摒除了上一版本的过时内容,可谓更加完美。且引入了Ext JS最新版本3.2的新特性,更是锦上添花。强烈推荐!” ——开源中国社区“本书内容翔实,示例丰富,叙述风趣幽默,可操作性极强……新版本中增加了更多有价值和实际意义的内容和实例。Ext JS开发者的必备之选。” ——一起Ext,著名EXT中文讨论社区
编辑推荐
《深入浅出Ext JS(第2版)》:畅销书全新升级,涉及ExtJS3.2新特性,ExtJS专家力作,示例丰富,理论和实践并重,Ajax中国、DOJO中国、开源中国社区、一起Ext四大网站联袂推荐。
图书封面
图书标签Tags
无
评论、评分、阅读与下载