内容简介
第1章 Ajax概述与Ajax初体验
1.1 重新思考Web应用
1.1.1 应用系统的发展史
1.1.2 传统Web应用的优势和缺点
1.2 重新设计Web应用
1.2.1 富Internet应用
1.2.2 使用Ajax
1.3 Ajax技术介绍
1.3.1 Ajax的工作方式
1.3.2 Ajax技术核心:XMLHttpRequest
1.3.3 Ajax的编程脚本:JavaScript语言
1.3.4 HTML页面的DOM模型
1.3.5 动态加载和显示数据
1.3.6 Ajax的特征
1.3.7 Ajax带来的典型优势
1.4 开发传统的B/S聊天室
1.4.1 实现业务逻辑组件
1.4.2 实现控制器
1.4.3 实现视图
1.4.4 传统B/S聊天室的问题
1.5 Ajax聊天室
1.5.1 异步发送请求
1.5.2 解决多余刷新的问题
1.5.3 解析服务器响应
1.5.4 何时发送请求
1.5.5 Ajax聊天室的特点
1.6 Ajax编程的技术难点
1.7 传统Web应用与Ajax应用的对比
1.8 本章小结
第2章 XMLHttpRequest对象详解
2.1 XMLHttpRequest对象概述
2.2 XMLHttpRequest的方法和属性
2.2.1 XMLHttpRequest的方法
2.2.2 XMLHttpRequest的属性
2.3 发送请求
2.3.1 发送简单请求
2.3.2 发送GET请求
2.3.3 发送POST请求
2.3.4 发送请求时的编码问题
2.3.5 发送XML请求
2.4 处理服务器响应
2.4.1 处理的时机
2.4.2 使用文本响应
2.4.3 使用JSON响应
2.5 XMLHttpRequest对象的运行周期
2.6 Ajax必须解决的问题
2.6.1 跨浏览器问题
2.6.2 安全性问题
2.6.3 性能问题
2.7 本章小结
第3章 jQuery库详解
3.1 jQuery入门
3.1.1 理解jQuery的设计
3.1.2 下载和安装jQuery
3.1.3 让jQuery与其他JavaScript库共存
3.2 获取jQuery对象
3.2.1 jQuery核心函数
3.2.2 jQuery与jQuery.holdReady
3.2.3 以CSS选择器访问DOM元素
3.2.4 选择器的附加限定词
3.2.5 表单相关的选择器
3.3 jQuery操作类数组的工具方法
3.3.1 过滤相关方法
3.3.2 仿DOM导航查找的相关方法
3.3.3 链接方法
3.4 jQuery支持的方法
3.4.1 jQuery命名空间的方法
3.4.2 数据存储的相关方法
3.4.3 操作属性的相关方法
3.4.4 操作CSS属性的相关方法
3.4.5 操作元素内容的相关方法
3.4.6 操作DOM节点的相关方法
3.5 jQuery事件相关方法
3.5.1 绑定事件处理函数
3.5.2 特定事件相关的方法
3.5.3 事件对象
3.6 动画效果相关的方法
3.6.1 简单动画和复杂动画
3.6.2 操作动画队列
3.7 jQuery的回调支持
3.7.1 回调支持的基本用法
3.7.2 创建Callbacks支持的选项
3.8 Ajax相关方法
3.8.1 三个工具方法
3.8.2 使用load方法
3.8.3 jQuery.ajax(options)与jQuery.ajaxSetup(options)
3.8.4 使用get/post方法
3.9 jQuery的Deferred对象
3.9.1 jQuery的异步调用
3.9.2 为多个耗时操作指定回调函数
3.9.3 为普通对象增加Defered接口
3.9.4 jQuery对象的promise方法
3.10 扩展jQuery和jQuery插件
3.11 本章小结
第4章 基于jQuery的应用:电子相册系统
4.1 实现持久层
4.1.1 实现持久化类
4.1.2 配置SessionFactory
4.2 实现DAO组件
4.2.1 开发通用DAO组件
4.2.2 DAO接口定义
4.2.3 完成DAO组件的实现类
4.3 实现业务逻辑层
4.3.1 实现业务逻辑组件
4.3.2 配置业务逻辑组件
4.4 实现客户端调用
4.4.1 访问业务逻辑组件
4.4.2 处理用户登录
4.4.3 获得用户相片列表
4.4.4 处理翻页
4.4.5 通过隐藏iframe实现文件上传
4.4.6 页面加载时的处理
4.5 本章小结
第5章 Ext JS核心技术详解
5.1 Ext JS入门
5.1.1 下载和安装Ext JS
5.1.2 Ext入门示例
5.1.3 使用Ext JS文档
5.2 核心工具方法
5.2.1 Ext的属性和获取浏览器特性
5.2.2 onReady方法
5.2.3 Ext.defer方法
5.2.4 Ext.apply和Ext.applyIf方法
5.2.5 Ext.define、Ext.create和Ext.extend方法
5.2.6 Ext.isXxx方法
5.2.7 Ext.each和Ext.iterate方法
5.2.8 Ext.namespace方法
5.3 Ext JS扩展的工具方法
5.3.1 为Array扩展的工具方法
5.3.2 为Date扩展的工具方法
5.3.3 为Function扩展的工具方法
5.3.4 为Number扩展的工具方法
5.3.5 为Object扩展的工具方法
5.3.6 为String扩展的工具方法
5.3.7 JSON支持
5.4 简化的DOM操作
5.4.1 Ext.get、Ext.getXxx和Ext.fly方法
5.4.2 Ext.query、Ext.select方法与Ext.dom.Query工具类
5.4.3 DOM元素的常用操作
5.4.4 使用Ext.DomHelper、Ext.Template动态生成HTML
5.5 动画处理
5.5.1 使用Ext.fx.Anim实现简单动画
5.5.2 使用Ext.fx.Animator实现多关键帧动画
5.5.3 为元素增加动画
5.6 Ext JS的事件处理
5.6.1 使用Ext.EventManager管理事 件处理函数与Ext.EventObject事件对象
5.6.2 事件处理函数的执行范围和附加选项
5.6.3 使用Ext.util.Observable实现内部事件
5.7 实用工具集
5.7.1 Ext.util.HashMap与Ext.util.MixedCollection
5.7.2 使用Ext.util.Cookies操作Cookie
5.7.3 使用Ext.util.DelayedTask处理延时任务
5.7.4 包装单击事件:Ext.util.ClickRepeater
5.7.5 使用Ext.util.TaskRunner与Ext.TaskManager
5.7.6 使用Ext.util.KeyMap与Ext.util.KeyNav为元素处理按键事件
5.8 拖放
5.8.1 使用Ext.dd.DD和Ext.dd.DDProxy创建可拖放元素
5.8.2 用Ext.dd.DragSource创建拖动源与用Ext.dd.DropTarget创建放目标
5.8.3 用Ext.dd.DragZone创建拖动源与用Ext.dd.DropZone创建放目标
5.9 Ajax支持
5.10 本章小结
第6章 Ext JS界面组件详解
6.1 容器、面板和窗口
6.1.1 使用Ext.Component
6.1.2 使用Ext.container.Container创建容器
6.1.3 使用Ext.panel.Panel创建面板
6.1.4 使用Ext.toolbar.ToolBar添加工具条
6.1.5 使用Exttab.Panel创建Tab面板
6.1.6 使用Ext.container.Viewport整体布局
6.1.7 使用Ext.window.Window创建窗口
6.1.8 使用Ext.window.MessageBox创建对话框
6.2 布局
6.2.1 容器与布局的关系
6.2.2 垂直布局与水平布局
6.2.3 使用Ext.resizer.Resizer为组件增加大小调整功能
6.2.4 使用Ext.resizer.Splitter为盒布局增加大小调整的功能
6.2.5 使用Ext.layout.container.Accordion实现折叠布局
6.2.6 使用Ext.layout.container.Border实现边框布局
6.2.7 使用Ext.layout.container.Table实现表格布局
6.2.8 使用Ext.layout.container.Column实现列布局
6.2.9 使用Ext.layout.container.Auto实现自动布局
6.2.10 使用Ext.layout.container.Fit实现自适应布局
6.2.11 使用Ext.layout.container.Card实现卡片布局
6.2.12 使用Ext.layout.container.Anchor实现锚布局
6.2.13 使用Ext.layout.container.Absolute实现绝对布局
6.3 菜单及菜单项
6.3.1 使用菜单
6.3.2 使用Ext.menu.CheckItem实现可勾选菜单项
6.3.3 使用Ext.menu.ColorPicker创建颜色选择器菜单
6.3.4 使用Ext.menu.DatePicker创建日期选择菜单
6.4 按钮
6.4.1 使用按钮
6.4.2 带菜单的按钮
6.4.3 带分割线的按钮:Ext.button.SPlit
6.4.4 多状态按钮:Ext.button.Cycle
6.4.5 使用Ext.container.ButtonGroup创建按钮组
6.4.6 使用Ext.Action
6.5 其他组件及实用功能
6.5.1 使用Ext.ProgressBar创建进度条
6.5.2 使用Ext.slider.Single创建滑动条
6.5.3 使用Ext.slider.Multi创建多滑块滑动条
6.5.4 使用Ext.Img创建图片
6.5.5 使用Ext.Editor创建编辑器
6.5.6 使用Ext.tip.ToolTip创建提示
6.5.7 使用Ext.tip.QuickTipManager和Ext.tip.QuickTip创建提示
6.5.8 使用Ext.ux.GMapPanel实现Google地图
6.6 表单
6.6.1 使用Ext.form.Panel与Ext.form.Basic创建表单
6.6.2 配置输入校验选项
6.6.3 使用vtype选项配置输入校验
6.6.4 使用Ext.form.action.Submit提交表单
6.6.5 使用Ext.form.action.Load为表单装载数据
6.6.6 使用Ext.form.action.StandardSubmit提交表单
6.6.7 单行文本框、密码框
6.6.8 使用Ext.form.field.Number创建数值框
6.6.9 使用Ext.form.field.Date创建日期选择框
6.6.10 使用Ext.form.field.Spinner创建微调选择框
6.6.11 使用Ext.form.field.TextArea创建文本域
6.6.12 使用Ext.form.field.HtmlEditor创建富文本编辑器
6.6.13 使用Ext.form.fieldFile上传文件
6.6.14 使用Ext.form.field.Checkbox创建复选框
6.6.15 使用Ext.form.field.Radio创建单选按钮
6.6.16 使用Ext.form.field.ComboBox创建复合框
6.6.17 使用远程数据、queryMode为local的复合框
6.6.18 queryMode为remote的复合框
6.6.19 为Ext.form.field.ComboBox增加分页功能
6.6.20 实现Ext.form.field.ComboBox二级联动
6.6.21 使用Ext.form.FieldSet组合表单控件
6.7 Ext JS的数据中心
6.7.1 Ext.data.Model与Ext.data.Field
6.7.2 使用Ext.data.proxy.Proxy和Ext.data.reader.Reader读取数据
6.7.3 Ext.data.Store及其子类
6.8 使用Ext.grid.Panel生成表格
6.8.1 使用Ext.grid.Panel生成表格
6.8.2 使用Ext.grid.column.Column定义列
6.8.3 使用Ext.grid.Panel显示远程数据
6.8.4 对Ext.grid.Panel表格进行分页
6.8.5 对本地数据进行分页
6.8.6 表格数据排序和过滤
6.8.7 通过表格特性对表格数据进行分组
6.8.8 开发动态编辑的表格
6.8.9 允许拖动数据的表格
6.8.10 使用Ext.grid.column.Action操作表格数据
6.9 使用Ext.tree.Panel生成树
6.9.1 树有关的类及简单树
6.9.2 添加、删除、修改树节点
6.9.3 带复选框的树节点
6.9.4 表格树
6.9.5 异步加载树节点
6.9.6 树节点的拖放与通过拖放更新底层数据
6.10 本章小结
第7章 Prototype库详解
7.1 Prototype的下载和安装
7.1.1 什么是Prototype库
7.1.2 下载和安装Prototype库
7.1.3 使用Prototype对象
7.2 Prototype的工具函数
7.2.1 使用$()函数
7.2.2 使用$$()函数
7.2.3 使用$A()函数
7.2.4 使用$F()函数
7.2.5 使用$w()函数
7.2.6 使用$H()函数
7.2.7 使用$R()函数
7.2.8 使用Try.these()函数
7.3 Prototype的JSON支持
7.4 Prototype的自定义对象和类
7.4.1 使用Element对象
7.4.2 使用Element.Methods
7.4.3 使用Enumerable
7.4.4 使用ObjectRange
7.4.5 使用Form.Element操作表单控件
7.4.6 使用Form操作表单
7.4.7 使用Hash对象
7.4.8 使用Event
7.4.9 使用Template
7.4.10 使用Class
7.4.11 两个常用的监听器
7.5 Prototype常用的扩展
7.5.1 扩展Array
7.5.2 扩展document
7.5.3 扩展String
7.5.4 扩展Function
7.5.5 扩展Number
7.6 Prototype的Ajax支持
7.6.1 使用Ajax.Request类
7.6.2 利用Form.request方法
7.6.3 使用Ajax.Responders对象
7.6.4 使用Ajax对象
7.6.5 使用Ajax.Updater类
7.6.6 使用Ajax.PeriodicalUpdater类
7.7 本章小结
第8章 基于Prototype库的应用:自动完成
8.1 应用的基本分析和持久层设计
8.1.1 数据要求
8.1.2 实现持久化类
8.1.3 实现DAO组件
8.1.4 部署DAO组件
8.2 实现Service组件
8.3 使用Servlet提供服务器响应
8.3.1 根据前缀查询品牌
8.3.2 根据品牌查询型号
8.3.3 根据型号查询详细信息
8.4 客户端HTML页面实现
8.5 增加HTML页面的事件响应能力
8.5.1 实现品牌输入框的事件处理器
8.5.2 实现键盘事件的处理器
8.5.3 根据品牌提示型号
8.5.4 根据型号显示描述
8.5.5 注册Ajax事件监听器
8.6 本章小结
第9章 DWR框架详解
9.1 DWR的下载和安装
9.1.1 什么是DWR
9.1.2 下载和安装DWR
9.2 使用DWR
9.2.1 编写处理类
9.2.2 配置DWR
9.3 使用DWR的转换器
9.3.1 基本转换器
9.3.2 对象转换器
9.3.3 数组转换器
9.3.4 集合类型转换器
9.4 方法声明定义
9.5 使用DWR的创建器
9.5.1 创建器的配置
9.5.2 使用new创建器
9.5.3 使用none创建器
9.5.4 使用script创建器
9.6 调用服务器端的方法
9.6.1 调用服务器端方法的通用配置
9.6.2 使用简单回调
9.6.3 使用JSON格式的回调
9.6.4 将客户端参数传递到回调函数
9.7 使用enginejs
9.7.1 设置调用顺序
9.7.2 设置全局超时时长
9.7.3 设置全局Hook函数
9.7.4 设置全局处理函数
9.7.5 设置常用的全局选项
9.7.6 批处理
9.8 使用util.js
9.8.1 使用$()
9.8.2 处理列表
9.8.3 处理表格
9.8.4 访问HTML元素值
9.8.5 几个工具函数
9.9 整合第三方Java EE框架
9.9.1 访问ServletAPI
9.9.2 整合Spring
9.10 使用DWR注释
9.10.1 初始配置
9.10.2 标注创建器和转换器
9.11 异常处理
9.12 反向Ajax
9.12.1 配置反向Ajax
9.12.2 在Java方法中操作Web页
9.12.3 在客户端调用反向Ajax方法
9.13 DWR 3简化的文件上传
9.13.1 文件上传的处理类
9.13.2 调用JavaScript完成文件上传
9.14 本章小结
第10章 基于DWR的应用:即时消息系统
10.1 实现Hibemate持久层
10.1.1 实现持久化类
10.1.2 将POJO映射成持久化对象
10.2 实现DAO组件
10.2.1 实现DAO组件
10.2.2 部署DAO组件
10.3 实现业务逻辑组件
10.3.1 业务逻辑组件的接口
10.3.2 业务逻辑组件的实现类
10.3.3 部署业务逻辑组件
10.4 开发DWR前端处理类
10.4.1 实现DWR前端处理组件
10.4.2 为前端处理器增加权限控制
10.5 处理异步请求
10.5.1 将Spring容器中的Bean创建成JavaScript对象
10.5.2 处理用户登录
10.5.3 处理用户注册
10.5.4 处理消息发布
10.5.5 获取消息列表
10.5.6 处理分页
10.5.7 查看消息内容
10.5.8 页面加载时的处理
10.6 本章小结
第11章 基于Ext JS 4.1 的应用:简易Blog系统
11.1 实现Hibernate持久层
11.1.1 设计Hibernate的持久化类
11.1.2 完成映射文件
11.2 实现DAO组件
11.2.1 DAO接口定义
11.2.2 实现DAO组件
11.2.3 配置DAO组件
11.3 实现业务逻辑组件
11.3.1 业务逻辑组件的接口
11.3.2 业务逻辑组件的实现类
11.3.3 配置业务逻辑组件
11.4 使用Ext JS开发前端
11.4.1 初始化界面
11.4.2 显示指定Blog文章
11.4.3 显示回复列表
11.4.4 添加回复
11.4.5 发表新Blog文章
11.5 本章小结
第12章 Ajax实例:电子拍卖系统
12.1 总体说明和概要设计
12.1.1 系统的总体架构设计
12.1.2 数据库设计
12.2 实现Hibernate持久化类
12.2.1 设计Domain Object
12.2.2 实现Domain Object
12.3 DAO层实现
12.3.1 DAO的基础配置
12.3.2 实现DAO组件
12.3.3 部署DAO组件
12.4 业务逻辑层实现
12.4.1 设计业务逻辑组件
12.4.2 依赖注入DAO组件
12.4.3 业务逻辑组件的异常处理
12.4.4 处理用户竞价
12.4.5 判断拍卖物品状态
12.4.6 事务管理
12.4.7 配置业务层组件
12.5 暴露前端处理方法
12.5.1 定义DWR前端处理类
12.5.2 初始化Spring容器
12.5.3 配置DWR的核心Servlet
12.5.4 暴露前端处理方法
12.5.5 对前端处理方法增加权限检查
12.6 调用前端处理方法响应用户请求
12.6.1 页面加载时的函数
12.6.2 处理返回首页的请求
12.6.3 浏览所有流拍物品
12.6.4 处理用户登录
12.6.5 管理物品
12.6.6 管理物品种类
12.6.7 查看竞得物品
12.6.8 查看自己的竞价记录
12.6.9 浏览拍卖物品
12.6.10 参与竞价
12.7 本章小结