第一图书网

疯狂Ajax讲义

李刚 电子工业出版社
出版时间:

2013-2  

出版社:

电子工业出版社  

作者:

李刚  

Tag标签:

无  

内容概要

李刚编著的《疯狂Ajax讲义》为《疯狂AjaX讲义》的第3版,其中jQuery升级到1.8版本;Prototype升级到1.7.1版本;DwR升级到3.0版本。第3版最大更新是详细、全面地介绍了Ext Js 4.1的知识。由于Ext Js 4.1本身内容比较多,因此本书花了几百页来介绍Ext Js的功能和用法,这部分内容独立出来即可作为Ext Js 4.1的学习手册。
本书详细介绍了iQuery 1.8、Ext Js 4.1、Prototype 1.7.1、DWR这4个最常用的AjaX框架的用法,并针对每个框架提供了一个实用案例,让读者理论联系实际。这部分内容是“疯狂软件教育中心”的标准讲义,它既包含了实际AjaX开发的重点和难点,也融人了大量学习者的学习经验和感悟。再由笔者以丰富的授课经验为基础,深入浅出地介绍它们,希望读者真正掌握Ajax开发的精髓。本书最后提供了2个综合性案例:Blog系统和电子拍卖系统,让读者将前面所学真正应用到实际项目中。电子拍卖系统是一个包含5个表、表之间具有复杂关联映射的系统,该案例采用目前最流行、最规范的轻量级.Java EE架构,将整个应用分为领域对象层、DAO层、业务逻辑层,然后用DWR作为AjaX引擎调用业务逻辑方法响应异步请求,系统权限检查推迟到业务逻辑层完成,并使用HTTP Session跟踪用户操作状态,从而避免用户刷新浏览器导致的浏览状态丢失。该案例对实际项目具有极好的指导价值和借鉴意义。该案例既提供了IDE无关的、基于Ant管理的项目源码,也提供了基于Eclipse IDE的项目源码,最大限度地满足读者的需求。如果在阅读本书时遇到任何技术问题,都可登录http://www.crazyit.org与本书庞大的读者群交流。
本书并非针对零基础的读者,书中不再包含HTML、CSS、JavaScript相关知识,这些知识是阅读本书的基础。本书适合有初步HTML、CSS、JavaScript基础的读者,或对企业应用前端开发不太熟悉的开发人员。如果你已经掌握本书上篇:《疯狂HTML 5/CSS 3/JavaScript讲义》内容,将非常适合阅读此书。

作者简介

李刚,从事10多年的Java EE应用开发,现任疯狂软件教育中心教学总监。 疯狂Java实训营创始人疯狂Java体系图书作者。曾任LITEON公司J2EE技术主管,负责该公司的企业信息化平台的架构设计。 51CTO专家门诊特邀嘉宾。 曾任广州电信、广东龙泉科技等公司的技术培训导师广东技术师范学院计算机科学系的兼职副教授。 培训的学生已在华为、IBM、阿里软件、网易、电信盈科等名企就职。 国内著名高端IT技术图书作家,已出版《疯狂Java讲义》、《疯狂Android讲义》、《轻量级Java EE企业应用实战》、《疯狂Ajax讲义》、《疯狂XMt.讲义》、《经典.Java EE企业应用实战》、《Struts 2.x权威指南》、《疯狂HTML 5/CSS 3/JavaScript讲义》等著作。其中疯狂Java体系图书均已得到广泛的市场认同多次重印成为超级畅销书,并被多所“985”“211”院校选作教材。部分图书已被翻译成繁体中文版、授权到台湾地区。

书籍目录

第1章 Ajax概述与Ajax初体验 11.1 重新思考Web应用 21.1.1 应用系统的发展史 21.1.2 传统Web应用的优势和缺点 51.2 重新设计Web应用 51.2.1 富Internet应用 61.2.2 使用Ajax 71.3 Ajax技术介绍 71.3.1 Ajax的工作方式 81.3.2 Ajax技术核心: XMLHttpRequest 81.3.3 Ajax的编程脚本: JavaScript语言 81.3.4 HTML页面的DOM模型 91.3.5 动态加载和显示数据 91.3.6 Ajax的特征 101.3.7 Ajax带来的典型优势 111.4 开发传统的B/S聊天室 131.4.1 实现业务逻辑组件 141.4.2 实现控制器 161.4.3 实现视图 181.4.4 传统B/S聊天室的问题 191.5 Ajax聊天室 201.5.1 异步发送请求 201.5.2 解决多余刷新的问题 221.5.3 解析服务器响应 241.5.4 何时发送请求 251.5.5 Ajax聊天室的特点 291.6 Ajax编程的技术难点 291.7 传统Web应用与Ajax应用的对比 311.8 本章小结 32第2章 XMLHttpRequest对象详解 332.1 XMLHttpRequest对象概述 342.2 XMLHttpRequest的方法和属性 342.2.1 XMLHttpRequest的方法 352.2.2 XMLHttpRequest的属性 382.3 发送请求 412.3.1 发送简单请求 412.3.2 发送GET请求 432.3.3 发送POST请求 462.3.4 发送请求时的编码问题 472.3.5 发送XML请求 512.4 处理服务器响应 542.4.1 处理的时机 542.4.2 使用文本响应 542.4.3 使用JSON响应 542.5 XMLHttpRequest对象的运行周期 572.6 Ajax必须解决的问题 582.6.1 跨浏览器问题 582.6.2 安全性问题 592.6.3 性能问题 612.7 本章小结 65第3章 jQuery库详解 663.1 jQuery入门 673.1.1 理解jQuery的设计 673.1.2 下载和安装jQuery 683.1.3 让jQuery与其他JavaScript 库共存 693.2 获取jQuery对象 693.2.1 jQuery核心函数 703.2.2 jQuery与jQuery.holdReady 713.2.3 以CSS选择器访问DOM元素 723.2.4 选择器的附加限定词 743.2.5 表单相关的选择器 773.3 jQuery操作类数组的工具方法 803.3.1 过滤相关方法 813.3.2 仿DOM导航查找的相关方法 833.3.3 链接方法 853.4 jQuery支持的方法 863.4.1 jQuery命名空间的方法 863.4.2 数据存储的相关方法 903.4.3 操作属性的相关方法 913.4.4 操作CSS属性的相关方法 933.4.5 操作元素内容的相关方法 963.4.6 操作DOM节点的相关方法 983.5 jQuery事件相关方法 1033.5.1 绑定事件处理函数 1033.5.2 特定事件相关的方法 1053.5.3 事件对象 1063.6 动画效果相关的方法 1083.6.1 简单动画和复杂动画 1083.6.2 操作动画队列 1113.7 jQuery的回调支持 1123.7.1 回调支持的基本用法 1123.7.2 创建Callbacks支持的选项 1143.8 Ajax相关方法 1163.8.1 三个工具方法 1163.8.2 使用load方法 1173.8.3 jQuery.ajax(options)与 jQuery.ajaxSetup(options) 1193.8.4 使用get/post方法 1203.9 jQuery的Deferred对象 1233.9.1 jQuery的异步调用 1233.9.2 为多个耗时操作指定回调函数 1273.9.3 为普通对象增加Defered接口 1273.9.4 jQuery对象的promise方法 1283.10 扩展jQuery和jQuery插件 1293.11 本章小结 130第4章 基于jQuery的应用:电子相册系统 1314.1 实现持久层 1324.1.1 实现持久化类 1324.1.2 配置SessionFactory 1344.2 实现DAO组件 1354.2.1 开发通用DAO组件 1364.2.2 DAO接口定义 1394.2.3 完成DAO组件的实现类 1394.3 实现业务逻辑层 1414.3.1 实现业务逻辑组件 1414.3.2 配置业务逻辑组件 1434.4 实现客户端调用 1444.4.1 访问业务逻辑组件 1444.4.2 处理用户登录 1454.4.3 获得用户相片列表 1484.4.4 处理翻页 1494.4.5 通过隐藏iframe实现文件上传 1504.4.6 页面加载时的处理 1544.5 本章小结 155第5章 Ext JS核心技术详解 1575.1 Ext JS入门 1585.1.1 下载和安装Ext JS 1585.1.2 Ext 入门示例 1595.1.3 使用Ext JS文档 1605.2 核心工具方法 1625.2.1 Ext的属性和获取浏览器特性 1625.2.2 onReady方法 1635.2.3 Ext.defer方法 1635.2.4 Ext.apply和Ext.applyIf方法 1645.2.5 Ext.define、Ext.create和 Ext.extend方法 1665.2.6 Ext.isXxx方法 1695.2.7 Ext.each和Ext.iterate方法 1695.2.8 Ext.namespace方法 1705.3 Ext JS扩展的工具方法 1715.3.1 为Array扩展的工具方法 1715.3.2 为Date扩展的工具方法 1735.3.3 为Function扩展的工具方法 1735.3.4 为Number扩展的工具方法 1745.3.5 为Object扩展的工具方法 1755.3.6 为String扩展的工具方法 1755.3.7 JSON支持 1765.4 简化的DOM操作 1775.4.1 Ext.get、Ext.getXxx和Ext.fly 方法 1775.4.2 Ext.query、Ext.select方法与 Ext.dom.Query工具类 1785.4.3 DOM元素的常用操作 1825.4.4 使用Ext.DomHelper、Ext.Template 动态生成HTML 1885.5 动画处理 1925.5.1 使用Ext.fx.Anim实现简单动画 1925.5.2 使用Ext.fx.Animator实现多 关键帧动画 1945.5.3 为元素增加动画 1955.6 Ext JS的事件处理 1975.6.1 使用Ext.EventManager管理事 件处理函数与Ext.EventObject 事件对象 1975.6.2 事件处理函数的执行范围和附 加选项 2005.6.3 使用Ext.util.Observable实现内 部事件 2015.7 实用工具集 2035.7.1 Ext.util.HashMap与 Ext.util.MixedCollection 2035.7.2 使用Ext.util.Cookies操作 Cookie 2045.7.3 使用Ext.util.DelayedTask 处理延时任务 2055.7.4 包装单击事件: Ext.util.ClickRepeater 2055.7.5 使用Ext.util.TaskRunner与 Ext.TaskManager 2065.7.6 使用Ext.util.KeyMap与Ext.util. KeyNav为元素处理按键事件 2075.8 拖放 2095.8.1 使用Ext.dd.DD和Ext.dd. DDProxy创建可拖放元素 2095.8.2 用Ext.dd.DragSource创建拖动 源与用Ext.dd.DropTarget创建 放目标 2105.8.3 用Ext.dd.DragZone创建拖动源与 用Ext.dd.DropZone创建放目标 2125.9 Ajax支持 2145.10 本章小结 217第6章 Ext JS界面组件详解 2186.1 容器、面板和窗口 2196.1.1 使用Ext.Component 2206.1.2 使用Ext.container.Container 创建容器 2226.1.3 使用Ext.panel.Panel创建面板 2236.1.4 使用Ext.toolbar.ToolBar添加 工具条 2266.1.5 使用Ext.tab.Panel创建Tab面板 2296.1.6 使用Ext.container.Viewport 整体布局 2316.1.7 使用Ext.window.Window创建 窗口 2346.1.8 使用Ext.window.MessageBox 创建对话框 2356.2 布局 2386.2.1 容器与布局的关系 2386.2.2 垂直布局与水平布局 2386.2.3 使用Ext.resizer.Resizer为组件 增加大小调整功能 2396.2.4 使用Ext.resizer.Splitter为盒布 局增加大小调整的功能 2416.2.5 使用Ext.layout.container.Accordion 实现折叠布局 2426.2.6 使用Ext.layout.container.Border 实现边框布局 2446.2.7 使用Ext.layout.container.Table 实现表格布局 2456.2.8 使用Ext.layout.container.Column 实现列布局 2466.2.9 使用Ext.layout.container.Auto 实现自动布局 2486.2.10 使用Ext.layout.container.Fit 实现自适应布局 2496.2.11 使用Ext.layout.container.Card 实现卡片布局 2506.2.12 使用Ext.layout.container.Anchor 实现锚布局 2526.2.13 使用Ext.layout.container.Absolute 实现绝对布局 2536.3 菜单及菜单项 2546.3.1 使用菜单 2546.3.2 使用Ext.menu.CheckItem实现 可勾选菜单项 2566.3.3 使用Ext.menu.ColorPicker创建 颜色选择器菜单 2576.3.4 使用Ext.menu.DatePicker创建 日期选择菜单 2586.4 按钮 2596.4.1 使用按钮 2596.4.2 带菜单的按钮 2616.4.3 带分割线的按钮:Ext.button.Split 2636.4.4 多状态按钮:Ext.button.Cycle 2646.4.5 使用Ext.container.ButtonGroup 创建按钮组 2666.4.6 使用Ext.Action 2676.5 其他组件及实用功能 2706.5.1 使用Ext. ProgressBar创建 进度条 2706.5.2 使用Ext.slider.Single创建滑动条 2746.5.3 使用Ext.slider.Multi创建多 滑块滑动条 2766.5.4 使用Ext.Img创建图片 2776.5.5 使用Ext.Editor创建编辑器 2786.5.6 使用Ext.tip.ToolTip创建提示 2796.5.7 使用Ext.tip.QuickTipManager 和Ext.tip.QuickTip创建提示 2836.5.8 使用Ext.ux.GMapPanel实现 Google地图 2846.6 表单 2866.6.1 使用Ext.form.Panel与 Ext.form.Basic创建表单 2886.6.2 配置输入校验选项 2926.6.3 使用vtype选项配置输入校验 2946.6.4 使用Ext.form.action.Submit提 交表单 2976.6.5 使用Ext.form.action.Load为表 单装载数据 3006.6.6 使用Ext.form.action. StandardSubmit提交表单 3036.6.7 单行文本框、密码框 3036.6.8 使用Ext.form.field.Number 创建数值框 3056.6.9 使用Ext.form.field.Date创建 日期选择框 3066.6.10 使用Ext.form.field.Spinner创建 微调选择框 3086.6.11 使用Ext.form.field.TextArea创 建文本域 3096.6.12 使用Ext.form.field.HtmlEditor 创建富文本编辑器 3106.6.13 使用Ext.form.field.File上传文件 3116.6.14 使用Ext.form.field.Checkbox 创建复选框 3146.6.15 使用Ext.form.field.Radio创建 单选按钮 3176.6.16 使用Ext.form.field.ComboBox 创建复合框 3196.6.17 使用远程数据、queryMode为 local的复合框 3216.6.18 queryMode为remote的复合框 3236.6.19 为Ext.form.field.ComboBox 增加分页功能 3256.6.20 实现Ext.form.field.ComboBox 二级联动 3276.6.21 使用Ext.form.FieldSet组合表 单控件 3306.7 Ext JS的数据中心 3326.7.1 Ext.data.Model与Ext.data.Field 3326.7.2 使用Ext.data.proxy.Proxy和 Ext.data.reader.Reader读取数据 3356.7.3 Ext.data.Store及其子类 3366.8 使用Ext.grid.Panel生成表格 3376.8.1 使用Ext.grid.Panel生成表格 3376.8.2 使用Ext.grid.column.Column 定义列 3396.8.3 使用Ext.grid.Panel显示远程数据 3426.8.4 对Ext.grid.Panel表格进行分页 3436.8.5 对本地数据进行分页 3446.8.6 表格数据排序和过滤 3466.8.7 通过表格特性对表格数据进行 分组 3476.8.8 开发动态编辑的表格 3496.8.9 允许拖动数据的表格 3526.8.10 使用Ext.grid.column.Action 操作表格数据 3566.9 使用Ext.tree.Panel生成树 3606.9.1 树有关的类及简单树 3606.9.2 添加、删除、修改树节点 3626.9.3 带复选框的树节点 3656.9.4 表格树 3666.9.5 异步加载树节点 3686.9.6 树节点的拖放与通过拖放更新 底层数据 3726.10 本章小结 376第7章 Prototype库详解 3777.1 Prototype的下载和安装 3787.1.1 什么是Prototype库 3787.1.2 下载和安装Prototype库 3797.1.3 使用Prototype对象 3797.2 Prototype的工具函数 3807.2.1 使用$()函数 3807.2.2 使用$$()函数 3827.2.3 使用$A()函数 3847.2.4 使用$F()函数 3857.2.5 使用$w()函数 3867.2.6 使用$H()函数 3867.2.7 使用$R()函数 3877.2.8 使用Try.these()函数 3887.3 Prototype的JSON支持 3897.4 Prototype的自定义对象和类 3907.4.1 使用Element对象 3907.4.2 使用Element.Methods 3947.4.3 使用Enumerable 3947.4.4 使用ObjectRange 3987.4.5 使用Form.Element操作表单 控件 3997.4.6 使用Form操作表单 4007.4.7 使用Hash对象 4027.4.8 使用Event 4047.4.9 使用Template 4057.4.10 使用Class 4067.4.11 两个常用的监听器 4077.5 Prototype常用的扩展 4097.5.1 扩展Array 4097.5.2 扩展document 4107.5.3 扩展String 4117.5.4 扩展Function 4147.5.5 扩展Number 4157.6 Prototype的Ajax支持 4167.6.1 使用Ajax.Request类 4167.6.2 利用Form.request方法 4207.6.3 使用Ajax.Responders对象 4217.6.4 使用Ajax对象 4227.6.5 使用Ajax.Updater类 4237.6.6 使用Ajax.PeriodicalUpdater类 4267.7 本章小结 428第8章 基于Prototype库的应用:自动完成 4298.1 应用的基本分析和持久层设计 4308.1.1 数据要求 4308.1.2 实现持久化类 4308.1.3 实现DAO组件 4328.1.4 部署DAO组件 4348.2 实现Service组件 4358.3 使用Servlet提供服务器响应 4378.3.1 根据前缀查询品牌 4388.3.2 根据品牌查询型号 4398.3.3 根据型号查询详细信息 4398.4 客户端HTML页面实现 4408.5 增加HTML页面的事件响应能力 4428.5.1 实现品牌输入框的事件处理器 4428.5.2 实现键盘事件的处理器 4448.5.3 根据品牌提示型号 4468.5.4 根据型号显示描述 4478.5.5 注册Ajax事件监听器 4488.6 本章小结 449第9章 DWR框架详解 4519.1 DWR的下载和安装 4529.1.1 什么是DWR 4529.1.2 下载和安装DWR 4539.2 使用DWR 4579.2.1 编写处理类 4589.2.2 配置DWR 4609.3 使用DWR的转换器 4619.3.1 基本转换器 4619.3.2 对象转换器 4629.3.3 数组转换器 4649.3.4 集合类型转换器 4649.4 方法声明定义 4659.5 使用DWR的创建器 4669.5.1 创建器的配置 4669.5.2 使用new创建器 4689.5.3 使用none创建器 4699.5.4 使用script创建器 4699.6 调用服务器端的方法 4709.6.1 调用服务器端方法的通用配置 4719.6.2 使用简单回调 4729.6.3 使用JSON格式的回调 4769.6.4 将客户端参数传递到回调函数 4799.7 使用engine.js 4809.7.1 设置调用顺序 4809.7.2 设置全局超时时长 4819.7.3 设置全局Hook函数 4819.7.4 设置全局处理函数 4819.7.5 设置常用的全局选项 4829.7.6 批处理 4829.8 使用util.js 4839.8.1 使用$() 4839.8.2 处理列表 4839.8.3 处理表格 4889.8.4 访问HTML元素值 4929.8.5 几个工具函数 4949.9 整合第三方Java EE框架 4969.9.1 访问Servlet API 4969.9.2 整合Spring 5009.10 使用DWR注释 5029.10.1 初始配置 5029.10.2 标注创建器和转换器 5039.11 异常处理 5049.12 反向Ajax 5069.12.1 配置反向Ajax 5069.12.2 在Java方法中操作Web页 5079.12.3 在客户端调用反向Ajax方法 5099.13 DWR 3简化的文件上传 5109.13.1 文件上传的处理类 5109.13.2 调用JavaScript完成文件上传 5129.14 本章小结 514第10章 基于DWR的应用:即时消息系统 51510.1 实现Hibernate持久层 51610.1.1 实现持久化类 51610.1.2 将POJO映射成持久化对象 51810.2 实现DAO组件 51910.2.1 实现DAO组件 51910.2.2 部署DAO组件 52010.3 实现业务逻辑组件 52110.3.1 业务逻辑组件的接口 52110.3.2 业务逻辑组件的实现类 52210.3.3 部署业务逻辑组件 52510.4 开发DWR前端处理类 52610.4.1 实现DWR前端处理组件 52610.4.2 为前端处理器增加权限控制 52810.5 处理异步请求 52910.5.1 将Spring容器中的Bean创建 成JavaScript对象 52910.5.2 处理用户登录 53110.5.3 处理用户注册 53210.5.4 处理消息发布 53410.5.5 获取消息列表 53510.5.6 处理分页 53610.5.7 查看消息内容 53710.5.8 页面加载时的处理 53810.6 本章小结 539第11章 基于Ext JS 4.1的应用:简易Blog系统 54011.1 实现Hibernate持久层 54111.1.1 设计Hibernate的持久化类 54111.1.2 完成映射文件 54311.2 实现DAO组件 54511.2.1 DAO接口定义 54611.2.2 实现DAO组件 54611.2.3 配置DAO组件 54711.3 实现业务逻辑组件 54811.3.1 业务逻辑组件的接口 54811.3.2 业务逻辑组件的实现类 54911.3.3 配置业务逻辑组件 55211.4 使用Ext JS开发前端 55311.4.1 初始化界面 55311.4.2 显示指定Blog文章 55711.4.3 显示回复列表 55911.4.4 添加回复 56111.4.5 发表新Blog文章 56511.5 本章小结 569第12章 Ajax实例:电子拍卖系统 57012.1 总体说明和概要设计 57112.1.1 系统的总体架构设计 57112.1.2 数据库设计 57212.2 实现Hibernate持久化类 57312.2.1 设计Domain Object 57412.2.2 实现Domain Object 57512.3 DAO层实现 57912.3.1 DAO的基础配置 57912.3.2 实现DAO组件 58012.3.3 部署DAO组件 58312.4 业务逻辑层实现 58412.4.1 设计业务逻辑组件 58412.4.2 依赖注入DAO组件 58612.4.3 业务逻辑组件的异常处理 587 12.4.4 处理用户竞价 58812.4.5 判断拍卖物品状态 59012.4.6 事务管理 59212.4.7 配置业务层组件 59212.5 暴露前端处理方法 59512.5.1 定义DWR前端处理类 59512.5.2 初始化Spring容器 59712.5.3 配置DWR的核心Servlet 59712.5.4 暴露前端处理方法 59812.5.5 对前端处理方法增加权限检查 60012.6 调用前端处理方法响应用户请求 60112.6.1 页面加载时的函数 60112.6.2 处理返回首页的请求 60212.6.3 浏览所有流拍物品 60212.6.4 处理用户登录 60512.6.5 管理物品 60912.6.6 管理物品种类 61212.6.7 查看竞得物品 61612.6.8 查看自己的竞价记录 61712.6.9 浏览拍卖物品 61912.6.10 参与竞价 62112.7 本章小结 624


编辑推荐

李刚编著的《疯狂Ajax讲义》全面、细致地介绍了jQuery、Ext JS 4.1、Prototype、DWR,将本书的任何部分独立出来,都可作为这门技术的学习手册;整体来看,它们是企业前端开发框架最主流、最具代表性的技术。本书适合有初步HTML、CSS、JavaScript基础的读者,或对企业应用前端开发不太熟悉的开发人员。

图书封面

图书标签Tags

广告

下载页面


疯狂Ajax讲义 PDF格式下载



刚学Ext 本来要做前台界面的.现在刚看 还不错...


书的内容特别好...就是没在双十一的时候买,能够便宜点!


讲的还不错,疯狂系列。。


速度很快 书刚看了一章


随便翻了翻,感觉很好,很实用


李刚的疯狂系列讲解很到位。只是书中有些小瑕疵,比如错别字,两个相反的属性,结果讲解的时候弄反了。最大的希望就是此系列书能有讲解视频。如果这样的话,疯狂系列的书我想我会全买的。


讲的很详细,内容也不错。


部分项目需要其他书籍的知识。


印刷不错,讲的还没看,不错粗略的一看,讲的很细


讲的非常详细,我很喜欢


书的质量还行,内容就不说了,经典


看了一两天,虽然还没有看完,但看得出来,这样的书出得太急了,书的装订风格,我也不太喜欢。光盘还没看,等啥时候想起来再说。综合评定,不值那个价!


我都还没看呢,不过疯狂的书籍都还好,挺详细的


最大收获就是认识了Ext JS这个框架,


李刚的书看了几本了,总体感觉他的书刚看起来感觉吸收得很慢,讲得不是很明确,(也可能是本人自身不擅长自学),但是以后工作中可以当字典用,对知识了解些了觉得还行,不适合通读。


相关图书