疯狂Ajax讲义(第3版)——jQuery/Ext JS/Prototype/DWR企业应用前端开发实战

疯狂Ajax讲义(第3版)——jQuery/Ext JS/Prototype/DWR企业应用前端开发实战(CD光盘1)畅销书升级版,企业应用前端开发实战指南

李刚 编著

ISBN 978-7-121-19394-1

20132月出版

定价:79.00

636

16

13164110_201303211139041.jpg

编辑推荐

详解前端应用开发中涉及的Ext JS/jQuery/XMLHttpRequest等技术,将Ajax融入轻量级Java EE开发,深入介绍Ajax+Java EE整合开发的方法和步骤,对实际开发具有极好的指导意义。

“疯狂Java体系”图书推荐:

疯狂Java讲义(第2版)

疯狂Java讲义精粹

疯狂Android讲义

轻量级Java EE企业应用实战(第3版):Struts 2Spring 3Hibernate整合开发

疯狂Ajax讲义——Prototype/jQuery+DWR+Spring+Hibernate整合开发

疯狂XML讲义(第2版)

经典Java EE企业应用实战——基于WebLogic/JBossJSF+EJB 3+JPA整合开发

Struts 2.x权威指南(第3版)

疯狂 Java 程序员的基本修养

内容提要

本书为《疯狂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的学习手册。

本书详细介绍了jQuery 1.8Ext JS 4.1Prototype 1.7.1DWR4个最常用的Ajax框架的用法,并针对每个框架提供了一个实用案例,让读者理论联系实际。这部分内容是“疯狂软件教育中心”的标准讲义,它既包含了实际Ajax开发的重点和难点,也融入了大量学习者的学习经验和感悟。再由笔者以丰富的授课经验为基础,深入浅出地介绍它们,希望读者真正掌握Ajax开发的精髓。本书最后提供了2个综合性案例:Blog系统和电子拍卖系统,让读者将前面所学真正应用到实际项目中。电子拍卖系统是一个包含5个表、表之间具有复杂关联映射的系统,该案例采用目前最流行、最规范的轻量级Java EE架构,将整个应用分为领域对象层、DAO层、业务逻辑层, 然后用DWR作为Ajax引擎调用业务逻辑方法响应异步请求,系统权限检查推迟到业务逻辑层完成,并使用HTTP Session跟踪用户操作状态,从而避免用户刷新浏览器导致的浏览状态丢失。该案例对实际项目具有极好的指导价值和借鉴意义。该案例既提供了IDE无关的、基于Ant管理的项目源码,也提供了基于Eclipse IDE的项目源码,最大限度地满足读者的需求。如果在阅读本书时遇到任何技术问题,都可登录http://www.crazyit.org与本书庞大的读者群交流。

本书并非针对零基础的读者,书中不再包含HTMLCSSJavaScript相关知识,这些知识是阅读本书的基础。本书适合有初步HTMLCSSJavaScript基础的读者,或对企业应用前端开发不太熟悉的开发人员。如果你已经掌握本书上篇:《疯狂HTML 5/CSS 3/JavaScript讲义》内容,将非常适合阅读此书。

目录

1章 Ajax概述与Ajax初体验         1

1.1  重新思考Web应用       2

1.1.1 应用系统的发展史    2

1.1.2 传统Web应用的优势和缺点   5

1.2 重新设计Web应用       5

1.2.1 富Internet应用 6

1.2.2 使用Ajax     7

1.3 Ajax技术介绍        7

1.3.1 Ajax的工作方式         8

1.3.2 Ajax技术核心:XMLHttpRequest     8

1.3.3 Ajax的编程脚本:JavaScript语言   8

1.3.4 HTML页面的DOM模型   9

1.3.5 动态加载和显示数据         9

1.3.6 Ajax的特征         10

1.3.7 Ajax带来的典型优势         11

1.4 开发传统的B/S聊天室         13

1.4.1 实现业务逻辑组件    14

1.4.2 实现控制器         16

1.4.3 实现视图    18

1.4.4 传统B/S聊天室的问题     19

1.5 Ajax聊天室    20

1.5.1 异步发送请求    20

1.5.2 解决多余刷新的问题         22

1.5.3 解析服务器响应         24

1.5.4 何时发送请求    25

1.5.5 Ajax聊天室的特点     29

1.6 Ajax编程的技术难点    29

1.7 传统Web应用与Ajax应用的对比      31

1.8 本章小结        32

2章 XMLHttpRequest对象详解    33

2.1 XMLHttpRequest对象概述  34

2.2 XMLHttpRequest的方法和属性  34

2.2.1 XMLHttpRequest的方法   35

2.2.2 XMLHttpRequest的属性   38

2.3 发送请求        41

2.3.1 发送简单请求    41

2.3.2 发送GET请求    43

2.3.3 发送POST请求  46

2.3.4 发送请求时的编码问题    47

2.3.5 发送XML请求   51

2.4 处理服务器响应   54

2.4.1 处理的时机         54

2.4.2 使用文本响应    54

2.4.3 使用JSON响应  54

2.5 XMLHttpRequest对象的运行周期       57

2.6 Ajax必须解决的问题    58

2.6.1 跨浏览器问题    58

2.6.2 安全性问题         59

2.6.3 性能问题    61

2.7 本章小结        65

3章 jQuery库详解 66

3.1 jQuery入门    67

3.1.1 理解jQuery的设计    67

3.1.2 下载和安装jQuery     68

3.1.3 让jQuery与其他JavaScript库共存  69

3.2 获取jQuery对象   69

3.2.1 jQuery核心函数          70

3.2.2 jQueryjQuery.holdReady        71

3.2.3 以CSS选择器访问DOM元素  72

3.2.4 选择器的附加限定词         74

3.2.5 表单相关的选择器    77

3.3 jQuery操作类数组的工具方法    80

3.3.1 过滤相关方法    81

3.3.2 仿DOM导航查找的相关方法  83

3.3.3 链接方法    85

3.4 jQuery支持的方法         86

3.4.1 jQuery命名空间的方法     86

3.4.2 数据存储的相关方法         90

3.4.3 操作属性的相关方法         91

3.4.4 操作CSS属性的相关方法          93

3.4.5 操作元素内容的相关方法         96

3.4.6 操作DOM节点的相关方法      98

3.5 jQuery事件相关方法    103

3.5.1 绑定事件处理函数    103

3.5.2 特定事件相关的方法         105

3.5.3 事件对象    106

3.6 动画效果相关的方法   108

3.6.1 简单动画和复杂动画         108

3.6.2 操作动画队列    111

3.7 jQuery的回调支持         112

3.7.1 回调支持的基本用法         112

3.7.2 创建Callbacks支持的选项        114

3.8 Ajax相关方法        116

3.8.1 三个工具方法    116

3.8.2 使用load方法    117

3.8.3 jQuery.ajax(options)jQuery.ajaxSetup(options)      119

3.8.4 使用get/post方法     120

3.9 jQueryDeferred对象        123

3.9.1 jQuery的异步调用     123

3.9.2 为多个耗时操作指定回调函数         127

3.9.3 为普通对象增加Defered接口 127

3.9.4 jQuery对象的promise方法      128

3.10 扩展jQueryjQuery插件          129

3.11 本章小结      130

4章 基于jQuery的应用:电子相册系统     131

4.1 实现持久层   132

4.1.1 实现持久化类    132

4.1.2 配置SessionFactory   134

4.2 实现DAO组件       135

4.2.1 开发通用DAO组件   136

4.2.2 DAO接口定义    139

4.2.3 完成DAO组件的实现类   139

4.3 实现业务逻辑层   141

4.3.1 实现业务逻辑组件    141

4.3.2 配置业务逻辑组件    143

4.4 实现客户端调用   144

4.4.1 访问业务逻辑组件    144

4.4.2 处理用户登录    145

4.4.3 获得用户相片列表    148

4.4.4 处理翻页    149

4.4.5 通过隐藏iframe实现文件上传         150

4.4.6 页面加载时的处理    154

4.5 本章小结        155

5章 Ext JS核心技术详解       157

5.1 Ext JS入门      158

5.1.1 下载和安装Ext JS       158

5.1.2 Ext 入门示例     159

5.1.3 使用Ext JS文档 160

5.2 核心工具方法        162

5.2.1 Ext的属性和获取浏览器特性  162

5.2.2 onReady方法      163

5.2.3 Ext.defer方法     163

5.2.4 Ext.applyExt.applyIf方法      164

5.2.5 Ext.defineExt.createExt.extend方法        166

5.2.6 Ext.isXxx方法     169

5.2.7 Ext.eachExt.iterate方法       169

5.2.8 Ext.namespace方法  170

5.3 Ext JS扩展的工具方法 171

5.3.1 为Array扩展的工具方法 171

5.3.2 为Date扩展的工具方法  173

5.3.3 为Function扩展的工具方法     173

5.3.4 为Number扩展的工具方法      174

5.3.5 为Object扩展的工具方法         175

5.3.6 为String扩展的工具方法 175

5.3.7 JSON支持   176

5.4 简化的DOM操作 177

5.4.1 Ext.getExt.getXxxExt.fly方法   177

5.4.2 Ext.queryExt.select方法与Ext.dom.Query工具类      178

5.4.3 DOM元素的常用操作       182

5.4.4 使用Ext.DomHelperExt.Template动态生成HTML      188

5.5 动画处理        192

5.5.1 使用Ext.fx.Anim实现简单动画         192

5.5.2 使用Ext.fx.Animator实现多关键帧动画 194

5.5.3 为元素增加动画         195

5.6 Ext JS的事件处理 197

5.6.1 使用Ext.EventManager管理事件处理函数与Ext.EventObject事件对象     197

5.6.2 事件处理函数的执行范围和附加选项    200

5.6.3 使用Ext.util.Observable实现内部事件    201

5.7 实用工具集   203

5.7.1 Ext.util.HashMapExt.util.MixedCollection    203

5.7.2 使用Ext.util.Cookies操作Cookie      204

5.7.3 使用Ext.util.DelayedTask 处理延时任务         205

5.7.4 包装单击事件:Ext.util.ClickRepeater     205

5.7.5 使用Ext.util.TaskRunnerExt.TaskManager  206

5.7.6 使用Ext.util.KeyMapExt.util.KeyNav为元素处理按键事件       207

5.8 拖放        209

5.8.1 使用Ext.dd.DDExt.dd.DDProxy创建可拖放元素       209

5.8.2 用Ext.dd.DragSource创建拖动源与用Ext.dd.DropTarget创建放目标         210

5.8.3 用Ext.dd.DragZone创建拖动源与用Ext.dd.DropZone创建放目标      212

5.9 Ajax支持        214

5.10 本章小结      217

6章 Ext JS界面组件详解       218

6.1 容器、面板和窗口        219

6.1.1 使用Ext.Component  220

6.1.2 使用Ext.container.Container创建容器    222

6.1.3 使用Ext.panel.Panel创建面板 223

6.1.4 使用Ext.toolbar.ToolBar添加工具条        226

6.1.5 使用Ext.tab.Panel创建Tab面板      229

6.1.6 使用Ext.container.Viewport整体布局      231

6.1.7 使用Ext.window.Window创建窗口  234

6.1.8 使用Ext.window.MessageBox创建对话框      235

6.2 布局        238

6.2.1 容器与布局的关系    238

6.2.2 垂直布局与水平布局         238

6.2.3 使用Ext.resizer.Resizer为组件增加大小调整功能         239

6.2.4 使用Ext.resizer.Splitter为盒布局增加大小调整的功能         241

6.2.5 使用Ext.layout.container.Accordion实现折叠布局          242

6.2.6 使用Ext.layout.container.Border实现边框布局      244

6.2.7 使用Ext.layout.container.Table实现表格布局         245

6.2.8 使用Ext.layout.container.Column实现列布局         246

6.2.9 使用Ext.layout.container.Auto实现自动布局 248

6.2.10 使用Ext.layout.container.Fit实现自适应布局          249

6.2.11 使用Ext.layout.container.Card实现卡片布局 250

6.2.12 使用Ext.layout.container.Anchor实现锚布局 252

6.2.13 使用Ext.layout.container.Absolute实现绝对布局  253

6.3 菜单及菜单项        254

6.3.1 使用菜单    254

6.3.2 使用Ext.menu.CheckItem实现可勾选菜单项         256

6.3.3 使用Ext.menu.ColorPicker创建颜色选择器菜单    257

6.3.4 使用Ext.menu.DatePicker创建日期选择菜单         258

6.4 按钮        259

6.4.1 使用按钮    259

6.4.2 带菜单的按钮    261

6.4.3 带分割线的按钮:Ext.button.Split   263

6.4.4 多状态按钮:Ext.button.Cycle 264

6.4.5 使用Ext.container.ButtonGroup创建按钮组   266

6.4.6 使用Ext.Action   267

6.5 其他组件及实用功能   270

6.5.1 使用Ext. ProgressBar创建进度条   270

6.5.2 使用Ext.slider.Single创建滑动条     274

6.5.3 使用Ext.slider.Multi创建多滑块滑动条  276

6.5.4 使用Ext.Img创建图片      277

6.5.5 使用Ext.Editor创建编辑器       278

6.5.6 使用Ext.tip.ToolTip创建提示    279

6.5.7 使用Ext.tip.QuickTipManagerExt.tip.QuickTip创建提示   283

6.5.8 使用Ext.ux.GMapPanel实现Google地图        284

6.6 表单        286

6.6.1 使用Ext.form.PanelExt.form.Basic创建表单     288

6.6.2 配置输入校验选项    292

6.6.3 使用vtype选项配置输入校验 294

6.6.4 使用Ext.form.action.Submit提交表单     297

6.6.5 使用Ext.form.action.Load为表单装载数据     300

6.6.6 使用Ext.form.action.StandardSubmit提交表单       303

6.6.7 单行文本框、密码框         303

6.6.8 使用Ext.form.field.Number 创建数值框 305

6.6.9 使用Ext.form.field.Date创建日期选择框        306

6.6.10 使用Ext.form.field.Spinner创建微调选择框   308

6.6.11 使用Ext.form.field.TextArea创建文本域 309

6.6.12 使用Ext.form.field.HtmlEditor创建富文本编辑器 310

6.6.13 使用Ext.form.field.File上传文件      311

6.6.14 使用Ext.form.field.Checkbox创建复选框         314

6.6.15 使用Ext.form.field.Radio创建单选按钮  317

6.6.16 使用Ext.form.field.ComboBox创建复合框      319

6.6.17 使用远程数据、queryModelocal的复合框        321

6.6.18  queryModeremote的复合框     323

6.6.19 Ext.form.field.ComboBox增加分页功能      325

6.6.20 实现Ext.form.field.ComboBox二级联动  327

6.6.21 使用Ext.form.FieldSet组合表单控件       330

6.7 Ext JS的数据中心 332

6.7.1 Ext.data.ModelExt.data.Field        332

6.7.2 使用Ext.data.proxy.ProxyExt.data.reader.Reader读取数据     335

6.7.3 Ext.data.Store及其子类    336

6.8 使用Ext.grid.Panel生成表格        337

6.8.1 使用Ext.grid.Panel生成表格    337

6.8.2 使用Ext.grid.column.Column定义列        339

6.8.3 使用Ext.grid.Panel显示远程数据    342

6.8.4 对Ext.grid.Panel表格进行分页         343

6.8.5 对本地数据进行分页         344

6.8.6 表格数据排序和过滤         346

6.8.7 通过表格特性对表格数据进行分组         347

6.8.8 开发动态编辑的表格         349

6.8.9 允许拖动数据的表格         352

6.8.10 使用Ext.grid.column.Action 操作表格数据     356

6.9 使用Ext.tree.Panel生成树  360

6.9.1 树有关的类及简单树         360

6.9.2 添加、删除、修改树节点         362

6.9.3 带复选框的树节点    365

6.9.4 表格树         366

6.9.5 异步加载树节点         368

6.9.6 树节点的拖放与通过拖放更新底层数据         372

6.10 本章小结      376

7章 Prototype库详解    377

7.1 Prototype的下载和安装       378

7.1.1 什么是Prototype  378

7.1.2 下载和安装Prototype  379

7.1.3 使用Prototype对象  379

7.2 Prototype的工具函数  380

7.2.1 使用$()函数         380

7.2.2 使用$$()函数      382

7.2.3 使用$A()函数      384

7.2.4 使用$F()函数       385

7.2.5 使用$w()函数     386

7.2.6 使用$H()函数      386

7.2.7 使用$R()函数      387

7.2.8 使用Try.these()函数  388

7.3 PrototypeJSON支持         389

7.4 Prototype的自定义对象和类       390

7.4.1 使用Element对象     390

7.4.2 使用Element.Methods       394

7.4.3 使用Enumerable         394

7.4.4 使用ObjectRange       398

7.4.5 使用Form.Element操作表单控件    399

7.4.6 使用Form操作表单  400

7.4.7 使用Hash对象  402

7.4.8 使用Event  404

7.4.9 使用Template    405

7.4.10 使用Class   406

7.4.11 两个常用的监听器    407

7.5 Prototype常用的扩展  409

7.5.1 扩展Array  409

7.5.2 扩展document   410

7.5.3 扩展String  411

7.5.4 扩展Function      414

7.5.5 扩展Number       415

7.6 PrototypeAjax支持  416

7.6.1 使用Ajax.Request 416

7.6.2 利用Form.request方法     420

7.6.3 使用Ajax.Responders对象        421

7.6.4 使用Ajax对象    422

7.6.5 使用Ajax.Updater 423

7.6.6 使用Ajax.PeriodicalUpdater 426

7.7 本章小结        428

8章 基于Prototype库的应用:自动完成   429

8.1 应用的基本分析和持久层设计   430

8.1.1 数据要求    430

8.1.2 实现持久化类    430

8.1.3 实现DAO组件   432

8.1.4 部署DAO组件   434

8.2 实现Service组件  435

8.3 使用Servlet提供服务器响应       437

8.3.1 根据前缀查询品牌    438

8.3.2 根据品牌查询型号    439

8.3.3 根据型号查询详细信息    439

8.4 客户端HTML页面实现         440

8.5 增加HTML页面的事件响应能力         442

8.5.1 实现品牌输入框的事件处理器         442

8.5.2 实现键盘事件的处理器    444

8.5.3 根据品牌提示型号    446

8.5.4 根据型号显示描述    447

8.5.5 注册Ajax事件监听器        448

8.6 本章小结        449

9章 DWR框架详解        451

9.1 DWR的下载和安装       452

9.1.1 什么是DWR        452

9.1.2 下载和安装DWR        453

9.2 使用DWR       457

9.2.1 编写处理类         458

9.2.2 配置DWR   460

9.3 使用DWR的转换器      461

9.3.1 基本转换器         461

9.3.2 对象转换器         462

9.3.3 数组转换器         464

9.3.4 集合类型转换器         464

9.4 方法声明定义        465

9.5 使用DWR的创建器      466

9.5.1 创建器的配置    466

9.5.2 使用new创建器        468

9.5.3 使用none创建器       469

9.5.4 使用script创建器      469

9.6 调用服务器端的方法   470

9.6.1 调用服务器端方法的通用配置         471

9.6.2 使用简单回调    472

9.6.3 使用JSON格式的回调       476

9.6.4 将客户端参数传递到回调函数         479

9.7 使用engine.js         480

9.7.1 设置调用顺序    480

9.7.2 设置全局超时时长    481

9.7.3 设置全局Hook函数  481

9.7.4 设置全局处理函数    481

9.7.5 设置常用的全局选项         482

9.7.6 批处理         482

9.8 使用util.js      483

9.8.1 使用$()         483

9.8.2 处理列表    483

9.8.3 处理表格    488

9.8.4 访问HTML元素值     492

9.8.5 几个工具函数    494

9.9 整合第三方Java EE框架      496

9.9.1 访问Servlet API  496

9.9.2 整合Spring 500

9.10 使用DWR注释      502

9.10.1 初始配置  502

9.10.2 标注创建器和转换器       503

9.11 异常处理        504

9.12 反向Ajax        506

9.12.1 配置反向Ajax  506

9.12.2 在Java方法中操作Web     507

9.12.3 在客户端调用反向Ajax方法 509

9.13 DWR 3简化的文件上传         510

9.13.1 文件上传的处理类  510

9.13.2 调用JavaScript完成文件上传         512

9.14 本章小结        514

10章 基于DWR的应用:即时消息系统     515

10.1 实现Hibernate持久层        516

10.1.1 实现持久化类  516

10.1.2 将POJO映射成持久化对象    518

10.2 实现DAO组件    519

10.2.1 实现DAO组件 519

10.2.2 部署DAO组件 520

10.3 实现业务逻辑组件      521

10.3.1 业务逻辑组件的接口       521

10.3.2 业务逻辑组件的实现类  522

10.3.3 部署业务逻辑组件  525

10.4 开发DWR前端处理类        526

10.4.1 实现DWR前端处理组件         526

10.4.2 为前端处理器增加权限控制  528

10.5 处理异步请求      529

10.5.1 将Spring容器中的Bean创建成JavaScript对象  529

10.5.2 处理用户登录  531

10.5.3 处理用户注册  532

10.5.4 处理消息发布  534

10.5.5 获取消息列表  535

10.5.6 处理分页  536

10.5.7 查看消息内容  537

10.5.8 页面加载时的处理  538

10.6 本章小结      539

11章 基于Ext JS 4.1的应用:简易Blog系统     540

11.1 实现Hibernate持久层        541

11.1.1 设计Hibernate的持久化类    541

11.1.2 完成映射文件  543

11.2 实现DAO组件    545

11.2.1 DAO接口定义  546

11.2.2 实现DAO组件 546

11.2.3 配置DAO组件 547

11.3 实现业务逻辑组件      548

11.3.1 业务逻辑组件的接口       548

11.3.2 业务逻辑组件的实现类  549

11.3.3 配置业务逻辑组件  552

11.4 使用Ext JS开发前端  553

11.4.1 初始化界面       553

11.4.2 显示指定Blog文章 557

11.4.3 显示回复列表  559

11.4.4 添加回复  561

11.4.5 发表新Blog文章      565

11.5 本章小结      569

12章 Ajax实例:电子拍卖系统   570

12.1 总体说明和概要设计 571

12.1.1 系统的总体架构设计       571

12.1.2 数据库设计       572

12.2 实现Hibernate持久化类   573

12.2.1 设计Domain Object 574

12.2.2 实现Domain Object 575

12.3 DAO层实现 579

12.3.1 DAO的基础配置      579

12.3.2 实现DAO组件 580

12.3.3 部署DAO组件 583

12.4 业务逻辑层实现 584

12.4.1 设计业务逻辑组件  584

12.4.2 依赖注入DAO组件 586

12.4.3 业务逻辑组件的异常处理       587

12.4.4 处理用户竞价  588

12.4.5 判断拍卖物品状态  590

12.4.6 事务管理  592

12.4.7 配置业务层组件       592

12.5 暴露前端处理方法      595

12.5.1 定义DWR前端处理类    595

12.5.2 初始化Spring容器  597

12.5.3 配置DWR的核心Servlet         597

12.5.4 暴露前端处理方法  598

12.5.5 对前端处理方法增加权限检查       600

12.6 调用前端处理方法响应用户请求      601

12.6.1 页面加载时的函数  601

12.6.2 处理返回首页的请求       602

12.6.3 浏览所有流拍物品  602

12.6.4 处理用户登录  605

12.6.5 管理物品  609

12.6.6 管理物品种类  612

12.6.7 查看竞得物品  616

12.6.8 查看自己的竞价记录       617

12.6.9 浏览拍卖物品  619

12.6.10 参与竞价  621

12.7 本章小结      624

作者简介

李刚,从事10多年的Java EE应用开发,现任疯狂软件教育中心教学总监。

疯狂Java实训营创始人,疯狂Java体系图书作者。曾任LITEON公司J2EE技术主管,负责该公司的企业信息化平台的架构设计。

51CTO专家门诊特邀嘉宾。

曾任广州电信、广东龙泉科技等公司的技术培训导师,广东技术师范学院计算机科学系的兼职副教授。

培训的学生已在华为、IBM、阿里软件、网易、电信盈科等名企就职。

国内著名高端IT技术作家,已出版《疯狂Java讲义》、《疯狂Android讲义》、《轻量级Java EE企业应用实战》、《疯狂Ajax讲义》、《疯狂XML讲义》、《经典Java EE企业应用实战》、《疯狂HTML 5/CSS 3/JavaScript讲义》、《Struts 2.x权威指南》等著作。其中疯狂Java体系图书均已得到广泛的市场认同,多次重印成为超级畅销书,并被多所“985”“211”院校选作教材。部分图书已被翻译成繁体中文版、授权到台湾地区。

 

前言

无论采用哪种开发平台,只要开发B/S结构的应用,Ajax都是一门不容回避的技术。从某种角度来看,AjaxJava的应用更广泛,后台语言除了首选Java之外,还可以选择PHPC#……,但Ajax技术不容回避。

Ajax技术是Web 2.0的重要技术之一,互联网上各种Blog系统、RSSWiki系统和SNS交友网络等,都大量使用了Ajax技术。Ajax技术还催生了大量的网页游戏。国内大量的游戏运营商纷纷推出自己的网页游戏,网页游戏具有无须下载、安装,即开即玩、简单便捷的特征,尤其对办公室上班族具有较大的吸引力,因此具有很好的市场前景。在这种网页游戏中,每个网页上包含了大量制作精美的图片,当游戏玩家单击、双击这些图片时,系统将采用Ajax技术与远程服务器通信,这是绝大部分网页游戏的底层运行机制。

由于Ajax的应用如此广泛,因此Ajax相关框架也十分活跃:除了最主流的jQueryExt JS 4.1PrototypeDWR之外,还有DojoYUI等各种框架,本书介绍jQueryExt JS 4.1PrototypeDWR4个框架,因为它们不仅是企业开发中最主流的前端框架,而且具有很强的代表性。

     jQuery/Prototype:代表单纯的JavaScript库,主要用于简化JavaScript开发,尤其是jQuery基本上已经成为行业规范。

     Ext JS:代表专业的JavaScript+UI组件库的RIA框架。不仅可简化JavaScript开发,而且可以轻松地开发专业、强大的UI界面。

     DWR:代表Java领域的RPC风格的Ajax框架。对于Java EE应用,DWR是十分明智的选择。但它不适合其他编程语言,因此影响力不如jQueryExt JS

由于Ajax技术本身丰富多彩,单独掌握一个Ajax框架(比如jQuery),并不能充分满足企业前端开发的要求。企业前端开发不仅需要扎实的JavaScript编程基础,还需要掌握HTML 5CSS 3UI技术,但如果总靠原生的JavaScript. HTML 5CSS 3技术进行前端开发,不仅开发效率低,而且应用界面的一致性也不好。因此企业前端开发既需要掌握主流的JavaScript库(jQuery基本已成为行业规范),还需要掌握主流的RIA框架,如Ext JS

本书全面、细致地介绍了jQueryExt JS 4.1PrototypeDWR,将本书的任何部分独立出来,都可作为这门技术的学习手册;整体来看,它们是企业前端开发框架最主流、最具代表性的技术。因此,一个功底扎实的前端开发者必须熟练地掌握并应用它们。

 

衷心感谢

疯狂Java体系图书已走过多年的“风风雨雨”,收到过无数读者的感激、期待,也遭遇过某些嫉妒者的恶意诋毁……但“群众的眼睛是雪亮的”,广大读者的认同已让疯狂Java体系图书的销量稳居国内第一。以Ajax为例(搜索JavaAndroidXML等都会看到类似效果),在当当网搜索Ajax图书,可以看到《疯狂Ajax讲义》排在第1位。在京东网搜索Ajax图书、按销量排行,可以看到《疯狂Ajax讲义》排在第2位。

诚挚地感谢广大读者的支持与爱护,你们的支持让疯狂Java图书没有放弃,你们的激励让疯狂Java图书茁壮成长,你们的反馈让疯狂Java图书日臻完善!同时也感谢博文视点张月萍等编辑,以及疯狂软件教育中心技术团队一贯的支持。

 

本书有什么特点

本书只是一本介绍Ajax前端开发的图书,不是一本关于所谓“思想”的书,更不是一本看完之后可以“吹嘘、炫耀”的书——因为本书并没有堆砌一堆“深奥”的新名词、一堆“高深”的思想,本书保持了“疯狂Java体系”的一贯风格:操作步骤详细,编程思路清晰,语言平实。

本书带给读者的只是9个字:“看得懂、学得会、做得出”,本书并不能让你认识一堆新名词,只能帮助你掌握扎实的企业前端开发功底。对于本书,光“看”是不够的,一定要“做”,阅读本书的同时,应该把所有知识点的配套实例都做出来,这样才能真正掌握本书的知识。

无论如何,读者在阅读本书时遇到知识上的问题,都可以登录疯狂Java联盟(http://www.crazyit.org)与广大Java学习者交流,笔者也会通过该平台与大家一起交流、学习。

除此之外,本书还有如下几个特点。

1.通俗易懂,适合自学

本书作为培训教材5年多了,吸收了大量学习者的学习体会和心得,并重点讲解了学习过程中难以理解和掌握的知识点,降低了学习者的学习难度。

2.知识丰富,内容全面

本书全面、详细地介绍了jQueryExt JS 4.1PrototypeDWR,它们既是企业开发中最主流的前端框架,也具有很强的代表性。掌握本书内容即可具备扎实的前端开发功底。

3.深入实用,实践性强

本书并不是一本Ajax的入门图书,而是全面、深入地介绍了企业开发中最主流、最具代表性的前端框架,并将它们真正融入Java企业应用开发,这对实际企业应用开发具有极好的指导意义。

 

本书写给谁看

本书并非针对零基础的读者,如果你具有HTML 5CSS 3JavaScript基础,认真学习此书即可让你成为前端开发的实战型人才;如果你已经阅读过本书上篇:《疯狂HTML 5/CSS/JavaScript讲义》,那么阅读本书非常合适;如果你完全没有HTMLCSSJavaScript基础知识,建议暂时不要购买、阅读本书。

 

 

2012-10-28

 

 

fj.png9787121193941.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13164110/viewspace-756700/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13164110/viewspace-756700/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值