疯狂前端开发讲义:jQuery+AngularJS+Bootstrap前端开发实战+疯狂HTML5+CSS3+JavaScript讲义(第2版)pdf下载

疯狂前端开发讲义:jQuery+AngularJS+Bootstrap前端开发实战+疯狂HTML5+CSS3+JavaScript讲义(第2版)百度网盘pdf下载

作者:
简介:疯狂前端开发讲义:jQuery+AngularJS+Bootstrap前端开发实战+疯狂HTML5+CSS3+JavaScript讲义(第2版)
出版社:
出版时间:2017-10
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

  《疯狂前端开发讲义:jQuery+AngularJS+Bootstrap前端开发实战》主要讲解jQuery、AngularJS、Bootstrap这三个常用的前端框架,并针对每个框架都提供了实用的案例,让读者理论联系实际。
  提供两个综合案例,综合利用了jQuery、AngularJS、Bootstrap前端开发技术,并在后端采用了极为流行、规范的轻量级JavaEE架构:控制器层->业务逻辑层->数据持久化层。
  书中案例对实际项目具有极好的指导价值和借鉴意义。
  案例既提供了IDE无关的、基于Ant管理的项目源码,也提供了基于EclipseIDE的项目源码,最大限度地满足读者的需求。

  《疯狂HTML5+CSS3+JavaScript讲义(第2版)》全书面向HTML5.1规范正式版,更新多个元素、拖放规范的相关知识,新增外挂字幕、点线模式等内容,着重介绍新增的手机端相关特性
  详细介绍渐变背景支持、弹性盒布局、手机浏览器响应式布局、3D变换等CSS新增特性及重大改进


内容简介

  W3C于2016年11月1日正式发布了HTML5.1规范,该规范已经得到广大浏览器厂商的支持,主流的*新版本的浏览器几乎都支持该规范。与此同时,前端开发的持续火爆,使得HTML5成为目前的热门领域。本书是一本全面介绍HTML5、CSS3和JavaScript前端开发技术的图书,系统地介绍了HTML5常用的元素和属性、HTML5的表单元素和属性、HTML5的绘图支持、HTML5的多媒体支持、CSS3的功能和用法、*前沿的变形与动画功能等。除此之外,本书还系统地介绍了JavaScript编程知识,包括JavaScript基本语法、DOM编程,以及HTML5新增的本地存储、Indexed数据库、离线应用、JavaScript多线程、客户端通信支持、WebSocket编程等。本书的定位是一本前端开发的“实战性”图书,因此在介绍各知识点时并不是简单地停留在知识点层面阐述,而是结合了大量实例来让读者对照练习、学以致用。本书*后还提供了一个基于HTML5技术的小游戏:疯狂俄罗斯方块。该游戏综合运用了HTML5的绘图支持、客户端存储等技术,具有较高的参考价值。本书提供了配套的答疑网站,如果读者在阅读本书时遇到了技术问题,可以登录疯狂Java联盟(http://www.crazyit.org)发帖,笔者将会及时予以解答。

  《疯狂前端开发讲义》基于《疯狂Ajax讲义(第3版)》的部分内容升级而来,全书升级了HTML5.1支持的XMLHttpRequest,jQuery升级到3.1。本书的重点是新加入的两个目前十分主流的前端框架:AngularJS和Bootstrap。《疯狂前端开发讲义》详细、全面地介绍了AngularJS和Bootstrap的知识,由于这两个框架是《疯狂前端开发讲义》的重点,因此花了近400多页来介绍它们的功能和用法,这部分内容独立出来完全可以作为AngularJS和Bootstrap的学习手册。《疯狂前端开发讲义》主要就是讲解jQuery3.1、AngularJS1.6、Bootstrap3.3这三个常用的前端框架,并针对每个框架都提供了实用的案例,让读者理论联系实际。这部分内容是“疯狂软件教育中心”的标准讲义,既包含了实际前端开发的重点和难点,也融入了大量学习者的学习经验和感悟。笔者以丰富的授课经验为基础,在讲解深入浅出,力求使读者真正掌握前端开发的精髓。《疯狂前端开发讲义》在后面提供两个综合性案例:图书管理系统和电子拍卖系统,这两个项目都综合利用了jQuery、AngularJS、Bootstrap前端开发技术,并在后端采用了流行、规范的轻量级JavaEE架构:控制器层->业务逻辑层->数据持久化层。这两个案例对实际项目具有极好的指导价值和借鉴意义。案例既提供了IDE无关的、基于Ant管理的项目源码,也提供了基于EclipseIDE的项目源码,大限度地满足读者的需求。如果在阅读《疯狂前端开发讲义》时遇到任何技术问题,都可登录http://www.crazyit.org与本书庞大的读者群交流。《疯狂前端开发讲义》并非针对零基础的读者,本书不再包含HTML、CSS、JavaScript相关知识,这些知识是阅读《疯狂前端开发讲义》的基础。《疯狂前端开发讲义》适合有初步HTML、CSS、JavaScript基础的读者,或对企业应用前端开发不太熟悉的开发人员。如果已经掌握《疯狂前端开发讲义》的姊妹篇《疯狂HTML5/CSS3/JavaScript讲义》,将非常适合阅读《疯狂前端开发讲义》。


作者简介

李刚,十多年的软件开发从业经验,疯狂软件教育中心教学总监。疯狂Java实训营创始人,疯狂Java体系原创图书作者。广东技术师范学院计算机科学系的兼职副教授,51CTO专家门诊特邀嘉宾。培训的学生已在华为、IBM、阿里软件、网易、电信盈科等名企就职。国内著名高端IT技术作家,已出版《疯狂Java讲义》《疯狂Android讲义》《轻量级Java EE企业应用实战》《疯狂iOS讲义(基础篇)(高级篇)》《疯狂 Swift讲义》《疯狂Ajax讲义》《疯狂XML讲义》《经典Java EE企业应用实战》《Struts 2.x**指南》《疯狂HTML 5/CSS 3/JavaScript讲义》等著作。其 中疯狂Java体系图书均已沉淀多年、赢得极高的市场认同、多次重印成为超级畅销图书,并被多所“985”“211”高校选作教材,不少图书已被翻译成繁体中文版、 授权到中国台湾地区。

目录

第1章 HTML 5简介 1
1.1 HTML历史与HTML 5 2
1.1.1 HTML发展历史 2
1.1.2 HTML 4.01和XHTML 3
1.1.3 HTML和XHTML的文档类型定义(DTD) 4
1.1.4 从XHTML到HTML 5 5
1.2 HTML 5的优势 6
1.2.1 解决跨浏览器问题 6
1.2.2 部分代替了原来的JavaScript 6
1.2.3 更明确的语义支持 7
1.2.4 增强了Web应用程序的功能 8
1.3 HTML 5的基本结构和语法变化 8
1.3.1 HTML 5的基本结构 8
1.3.2 标签不再区分大小写 9
1.3.3 元素可以省略结束标签 10
1.3.4 支持boolean值的属性 11
1.3.5 允许属性值不使用引号 12
1.4 本章小结 12
第2章 HTML 5的常用元素与属性 14
2.1 HTML 5保留的常用元素 15
2.1.1 基本元素 15
2.1.2 文本格式相关元素 17
2.1.3 语义相关元素 19
2.1.4 使用a元素添加超链接和锚点 21
2.1.5 列表相关元素 24
2.1.6 使用img元素添加图片 27
2.1.7 表格相关元素 30
2.2 HTML 5增强的iframe元素 34
2.2.1 HTML 5新增的srcdoc属性 35
2.2.2 HTML 5新增的seamless属性 36
2.2.3 HTML 5新增的sandbox属性 36
2.3 HTML 5保留的通用属性 40
2.3.1 id、style、class属性 40
2.3.2 dir属性 41
2.3.3 title属性 42
2.3.4 lang属性 43
2.3.5 accesskey属性 43
2.3.6 tabindex属性 43
2.4 HTML 5新增的通用属性 44
2.4.1 contentEditable属性 44
2.4.2 designMode属性 46
2.4.3 hidden属性 46
2.4.4 spellcheck属性 47
2.4.5 contextmenu属性 47
2.5 HTML 5新增的结构元素 48
2.5.1 article与section元素 48
2.5.2 header与footer元素 51
2.5.3 nav与aside元素 52
2.5.4 main元素 53
2.5.5 figure与figcaption元素 54
2.6 HTML 5新增的语义元素 55
2.6.1 mark元素 55
2.6.2 time元素 56
2.6.3 details与summary元素 56
2.6.4 ruby、rtc、rb、rt和rp元素 57
2.6.5 bdi元素 58
2.6.6 wbr元素 58
2.6.7 menu和menuitem元素 59
2.7 HTML 5头部和元信息 59
2.7.1 link元素 60
2.7.2 base元素 62
2.7.3 meta元素 62
2.8 HTML 5新增的拖放API 63
2.8.1 启动拖动 63
2.8.2 接受“放” 65
2.8.3 DataTransfer对象 67
2.8.4 拖放行为 69
2.8.5 改变拖放图标 70
2.9 本章小结 71
第3章 HTML 5表单相关的元素和属性 72
3.1 HTML原有的表单及表单控件 73
3.1.1 form元素 73
3.1.2 input元素 74
3.1.3 使用label定义标签 77
3.1.4 使用button定义按钮 78
3.1.5 select与option元素 79
3.1.6 HTML 5增强的textarea 80
3.1.7 fieldset与legend元素 82
3.2 HTML 5新增的表单属性 83
3.2.1 form属性 83
3.2.2 formaction属性 83
3.2.3 formxxx属性 84
3.2.4 autofocus属性 85
3.2.5 placeholder属性 85
3.2.6 list属性 86
3.2.7 autocomplete属性 87
3.2.8 label的control属性 88
3.2.9 表单元素的labels属性 88
3.2.10 文本框的selectionDirection属性 89
3.2.11 复选框的indeterminate属性 89
3.3 HTML 5新增的表单元素 90
3.3.1 功能丰富的input元素 90
3.3.2 output元素 93
3.3.3 meter元素 94
3.3.4 progress元素 95
3.3.5 keygen元素 95
3.4 HTML 5新增的客户端校验 96
3.4.1 使用校验属性执行校验 96
3.4.2 调用checkValidity方法进行校验 97
3.4.3 自定义错误提示 98
3.4.4 关闭校验 99
3.5 本章小结 100
第4章 HTML 5的绘图支持 101
4.1 使用canvas元素 102
4.2 绘图 103
4.2.1 canvas绘图基础:CanvasRenderingContext2D 103
4.2.2 绘制几何图形 105
4.2.3 点线模式 107
4.2.4 绘制字符串 109
4.2.5 设置阴影 110
4.2.6 使用路径 111
4.2.7 绘制曲线 115
4.2.8 绘制位图 117
4.3 坐标变换 118
4.3.1 使用坐标变换 118
4.3.2 坐标变换与路径结合使用 119
4.3.3 使用矩阵变换 121
4.4 控制叠加风格 123
4.5 控制填充风格 124
4.5.1 线性渐变 124
4.5.2 径向渐变 126
4.5.3 位图填充 127
4.6 位图处理 128
4.6.1 位图裁剪 128
4.6.2 像素处理 129
4.7 输出位图 132
4.8 动画制作 133
4.8.1 基于定时器的动画 133
4.8.2 基于requestAnimationFrame的动画 135
4.9 本章小结 136
第5章 HTML 5的多媒体支持 137
5.1 使用audio和video元素 138
5.2 使用JavaScript脚本控制媒体播放 141
5.2.1 HTMLAudioElement与HTMLVideoElement支持的方法 141
5.2.2 HTMLAudioElement与HTMLVideoElement的属性 143
5.3 事件监听 144
5.3.1 事件 144
5.3.2 监听器 145
5.4 track元素 146
5.4.1 使用track元素添加字幕 146
5.4.2 WebVTT文件简介 147
5.4.3 字幕内容的标记 148
5.5 本章小结 149
第6章 级联样式单与CSS选择器 150
6.1 样式单概述 151
6.1.1 CSS概述 151
6.1.2 CSS的发展历史 152
6.2 CSS样式单的基本使用 152
6.2.1 引入外部样式文件 152
6.2.2 导入外部样式单 154
6.2.3 使用内部CSS样式 155
6.2.4 使用行内样式 156
6.3 CSS选择器 158
6.3.1 元素选择器 158
6.3.2 属性选择器 159
6.3.3 ID选择器 161
6.3.4 class选择器 162
6.3.5 包含选择器 163
6.3.6 子选择器 164
6.3.7 CSS 3新增的兄弟选择器 165
6.3.8 选择器组合 166
6.4 伪元素选择器 167
6.4.1 内容相关的属性 169
6.4.2 插入图像 170
6.4.3 只插入部分元素 171
6.4.4 配合quotes属性执行插入 171
6.4.5 配合counter-increment属性添加编号 172
6.4.6 使用自定义编号 173
6.4.7 添加多级编号 174
6.5 CSS 3新增的伪类选择器 176
6.5.1 结构性伪类选择器 176
6.5.2 UI元素状态伪类选择器 186
6.5.3 :target伪类选择器 193
6.5.4 :not伪类选择器 194
6.6 在脚本中修改显示样式 195
6.6.1 随机改变页面的背景色 195
6.6.2 动态增加立体效果 196
6.7 本章小结 197
第7章 字体与文本相关属性 198
7.1 字体相关属性 199
7.1.1 使用text-shadow添加阴影 201
7.1.2 添加多个阴影 202
7.1.3 使用font-size-adjust属性微调字体大小 203
7.2 CSS 3支持的颜色表示方法 205
7.3 文本相关属性 206
7.3.1 使用white-space控制空白的处理行为 208
7.3.2 文本自动换行:word-break 209
7.3.3 用word-warp控制长单词或URL地址换行 210
7.4 CSS 3新增的服务器字体 212
7.4.1 使用服务器字体 212
7.4.2 定义粗体、斜体字 213
7.4.3 优先使用客户端字体 214
7.5 本章小结 215
第8章 背景、边框和边距相关属性 216
8.1 盒模型简介 217
8.2 背景相关属性 217
8.2.1 背景图片固定 219
8.2.2 CSS 3新增的background-clip属性 220
8.2.3 CSS 3新增的background-origin属性 221
8.2.4 CSS 3新增的background-size属性 222
8.2.5 CSS 3为background-repeat新增的space和round 224
8.2.6 CSS 3新增的多背景图片 225
8.3 使用渐变背景 226
8.3.1 使用linear-gradient设置线性渐变 226
8.3.2 使用repeating-linear-gradient设置循环线性渐变 230
8.3.3 使用radial-gradient设置径向渐变 231
8.3.4 使用repeating-radial-gradient设置循环径向渐变 238
8.4 边框相关属性 239
8.4.1 CSS 3提供的渐变边框 241
8.4.2 CSS 3提供的圆角边框 242
8.4.3 CSS 3提供的图片边框 244
8.5 使用opacity控制透明度 246
8.6 padding和margin相关属性 247
8.6.1 内填充相关属性 247
8.6.2 外边距相关属性 248
8.7 本章小结 249
第9章 大小、定位、轮廓相关属性 250
9.1 width、height相关属性 251
9.1.1 CSS 3新增的box-sizing属性 252
9.1.2 CSS 3新增的resize属性 253
9.1.3 CSS 3新增的calc函数 254
9.2 定位相关属性 255
9.3 轮廓相关属性 257
9.4 用户界面和滤镜属性 258
9.4.1 appearance属性 259
9.4.2 使用filter属性应用滤镜 260
9.5 本章小结 263
第10章 盒模型与布局相关属性 264
10.1 盒模型和display属性 265
10.1.1 两种最基本的盒类型 265
10.1.2 none值和visibility属性 267
10.1.3 inline-block类型的盒模型 267
10.1.4 inline-table类型的盒模型 270
10.1.5 使用table类型的盒模型实现表格 271
10.1.6 list-item类型的盒模型 272
10.1.7 run-in类型的盒模型 273
10.2 对盒添加阴影 275
10.2.1 使用box-shadow属性 275
10.2.2 对表格及单元格添加阴影 277
10.3 布局相关属性 278
10.3.1 通过float属性实现多栏布局 279
10.3.2 使用clear属性实现换行 280
10.3.3 使用overflow设置滚动条 282
10.3.4 使用overflow-style控制滚动方式 283
10.3.5 使用clip属性控制裁剪 284
10.4 CSS 3新增的多栏布局 285
10.4.1 使用column-width指定栏宽度 286
10.4.2 使用column-gap和column-rule控制分栏间隔 287
10.4.3 使用column-span设置跨栏 288
10.5 使用弹性盒布局 289
10.5.1 使用flex类型的盒模型 290
10.5.2 通过flex-direction指定盒内元素的排列方向 291
10.5.3 使用flex-wrap控制换行 293
10.5.4 使用order控制元素显示顺序 294
10.5.5 使用flex属性控制子元素的缩放 295
10.5.6 使用align-items和align-self控制对齐方式 301
10.5.7 使用justify-content控制元素分布 302
10.5.8 使用align-content控制行的分布方式 304
10.6 本章小结 306
第11章 表格、列表相关属性及media query 307
11.1 表格相关属性 308
11.1.1 使用border-collapse、border-spacing控制单元格边框 308
11.1.2 使用caption-side控制表格标题的位置 310
11.1.3 使用table-layout控制表格布局 311
11.2 列表相关属性 313
11.2.1 使用list-style属性控制列表项 313
11.2.2 使用list-style属性控制普通元素 315
11.3 控制光标的属性 316
11.4 media query和响应式布局 317
11.4.1 media query语法 318
11.4.2 针对浏览器宽度响应式布局 319
11.4.3 响应手机浏览器 321
11.5 本章小结 323
第12章 变形与动画相关属性 324
12.1 CSS 3提供的变形支持 325
12.1.1 4种基本变形 326
12.1.2 同时应用多种变形 330
12.1.3 指定变换中心点 331
12.1.4 使用矩阵变换 333
12.2 CSS 3新增的3D变换 337
12.2.1 perspective属性 337
12.2.2 transform-style属性 339
12.2.3 backface-visibility属性 340
12.3 CSS 3提供的Transition动画 341
12.3.1 多个属性同时渐变 342
12.3.2 指定动画速度 344
12.4 CSS 3提供的Animation动画 345
12.4.1 同时改变多个属性的动画 347
12.4.2 鱼眼效果 348
12.5 本章小结 349
第13章 JavaScript语法详解 350
13.1 JavaScript简介 351
13.1.1 运行JavaScript 352
13.1.2 导入JavaScript文件 352
13.1.3 使用script元素的defer推迟脚本执行 353
13.1.4 使用script元素的async异步执行脚本 354
13.1.5 noscript元素 355
13.2 数据类型和变量 356
13.2.1 定义变量的方式 356
13.2.2 类型转换 357
13.2.3 变量作用域 358
13.2.4 变量提升 361
13.2.5 新增的let变量 362
13.2.6 使用const定义常量 363
13.3 基本数据类型 364
13.3.1 数值类型 364
13.3.2 字符串类型 369
13.3.3 布尔类型 372
13.3.4 undefined和null 373
13.3.5 正则表达式 374
13.4 复合类型 376
13.4.1 对象 376
13.4.2 数组 376
13.4.3 函数 379
13.5 运算符 381
13.5.1 赋值运算符 381
13.5.2 算术运算符 382
13.5.3 位运算符 383
13.5.4 加强的赋值运算符 385
13.5.5 比较运算符 385
13.5.6 逻辑运算符 386
13.5.7 三目运算符 388
13.5.8 逗号运算符 389
13.5.9 void运算符 389
13.5.10 typeof和instanceof运算符 390
13.6 语句 391
13.6.1 语句块 391
13.6.2 空语句 391
13.6.3 异常抛出语句 392
13.6.4 异常捕捉语句 393
13.6.5 with语句 394
13.7 流程控制 395
13.7.1 分支 395
13.7.2 while循环 397
13.7.3 do while循环 398
13.7.4 for循环 398
13.7.5 for in循环 399
13.7.6 break和continue 400
13.8 函数 403
13.8.1 定义函数的3种方式 403
13.8.2 递归函数 406
13.8.3 局部变量和局部函数 407
13.8.4 函数、方法、对象、变量和类 409
13.8.5 函数的实例属性和类属性 413
13.8.6 调用函数的3种方式 415
13.8.7 函数的独立性 416
13.8.8 函数提升 418
13.8.9 箭头函数 421
13.9 函数的参数处理 425
13.9.1 基本类型和复合类型的参数传递 425
13.9.2 空参数 426
13.9.3 参数类型 427
13.10 面向对象 429
13.10.1 面向对象的概念 429
13.10.2 对象和关联数组 430
13.10.3 继承和prototype 431
13.10.4 构造器实现伪继承 436
13.10.5 使用apply或call实现伪继承 437
13.11 创建对象 437
13.11.1 使用new关键字调用构造器创建对象 438
13.11.2 使用Object直接创建对象 438
13.11.3 使用JSON语法创建对象 440
13.12 本章小结 443
第14章 DOM编程详解 444
14.1 DOM模型概述 445
14.2 DOM模型和HTML文档 446
14.2.1 HTML元素之间的继承关系 446
14.2.2 HTML元素之间常见的包含关系 447
14.3 访问HTML元素 448
14.3.1 根据ID访问HTML元素 448
14.3.2 根据CSS选择器访问HTML元素 449
14.3.3 利用节点关系访问HTML元素 451
14.3.4 访问表单控件 453
14.3.5 访问列表框、下拉菜单的选项 454
14.3.6 访问表格子元素 455
14.4 修改HTML元素 456
14.5 增加HTML元素 458
14.5.1 创建或复制节点 458
14.5.2 添加节点 460
14.5.3 为列表框、下拉菜单添加选项 460
14.5.4 动态添加表格内容 462
14.6 删除HTML元素 463
14.6.1 删除节点 463
14.6.2 删除列表框、下拉菜单的选项 464
14.6.3 删除表格的行或单元格 465
14.7 传统的DHTML模型 467
14.8 使用window对象 469
14.8.1 访问页面URL 471
14.8.2 客户机屏幕信息 472
14.8.3 弹出新窗口 473
14.8.4 确认对话框和输入对话框 473
14.8.5 使用定时器 474
14.8.6 桌面通知 476
14.9 navigator和地理定位 479
14.9.1 HTML 5新增的geolocation属性 480
14.9.2 获取地理位置 481
14.9.3 在高德地图上定位 483
14.9.4 获取电池信息 484
14.10 HTML 5增强的History API 485
14.11 使用document对象 490
14.11.1 动态页面 491
14.11.2 读写Cookie 492
14.12 HTML 5新增的浏览器分析 493
14.12.1 分析时间性能 493
14.12.2 分析导航行为 495
14.13 本章小结 496
第15章 事件处理机制 497
15.1 事件模型的基本概念 498
15.2 绑定事件处理函数 499
15.2.1 绑定HTML元素属性 499
15.2.2 绑定JavaScript对象属性 501
15.2.3 addEventListener与attachEvent 502
15.3 事件处理函数的执行环境 505
15.3.1 事件处理函数中this关键字 505
15.3.2 访问事件对象 507
15.3.3 使用返回值取消默认行为 510
15.3.4 调用顺序 510
15.3.5 在代码中触发事件 511
15.3.6 事件传播 512
15.3.7 取消事件的默认行为 517
15.3.8 转发事件 519
15.4 事件类型 521
15.4.1 事件类型概述 521
15.4.2 文档事件 523
15.4.3 鼠标滚轮事件 525
15.4.4 键盘事件 528
15.4.5 触屏事件和移动设备事件 529
15.5 本章小结 534
第16章 本地存储与离线应用 535
16.1 Web Storage 536
16.1.1 Storage接口 536
16.1.2 使用Storage存储、读取数据 538
16.1.3 基于Web Storage的记事本 539
16.1.4 存储结构化数据 541
16.1.5 监听存储事件 543
16.2 Indexed数据库API 545
16.2.1 使用IDBFactory打开数据库 545
16.2.2 使用IDBDatabase创建对象存储和索引 547
16.2.3 使用IDBTransaction(事务) 550
16.2.4 使用IDBObjectStore执行CRUD操作 551
16.2.5 使用IDBObjectStore根据主键检索数据 557
16.2.6 使用IDBIndex根据索引检索数据 559
16.2.7 使用复合索引 562
16.3 离线应用 564
16.3.1 离线应用与浏览器缓存的区别 564
16.3.2 构建离线应用 564
16.3.3 判断在线状态 566
16.3.4 applicationCache对象 567
16.3.5 离线应用的事件与监听 569
16.4 本章小结 571
第17章 文件支持与二进制数据 572
17.1 HTML 5增强的文件上传域 573
17.1.1 FileList对象与File对象 573
17.1.2 使用FileReader读取文件内容 574
17.2 ArrayBuffer与TypedArray 578
17.2.1 TypedArray类 579
17.2.2 DataView类 581
17.3 Blob类 583
17.3.1 使用Blob对象 583
17.3.2 存储Blob对象 585
17.4 本章小结 587
第18章 Web Worker多线程API 588
18.1 使用Worker创建多线程 589
18.2 与Worker线程进行数据交换 591
18.2.1 与Worker线程交换数据 591
18.2.2 Worker线程中可用的API 593
18.3 Worker线程嵌套 594
18.3.1 嵌套Worker线程 594
18.3.2 子线程之间的数据交换 596
18.4 使用SharedWorker创建共享线程 597
18.4.1 SharedWorker的用法 598
18.4.2 共享线程实例 601
18.5 Promise 603
18.5.1 Promise基本用法 603
18.5.2 链式调用then方法 605
18.5.3 Promise链 606
18.5.4 catch的用法 607
18.5.5 all和race的用法 609
18.6 本章小结 611
第19章 客户端通信 612
19.1 跨文档消息传递 613
19.1.1 postMessage与onmessage 613
19.1.2 跨文档消息传递示例 614
19.1.3 发送复杂消息 616
19.1.4 使用MessageChannel通信 618
19.2 使用WebSocket与服务器通信 621
19.2.1 WebSocket接口 622
19.2.2 使用WebSocket进行通信 623
19.2.3 基于WebSocket的多人实时聊天 625
19.2.4 发送二进制数据 627
19.3 使用Server-Sent Events API 630
19.3.1 使用EventSource获取数据 630
19.3.2 EventSource的生命周期 633
19.4 使用Beacon 635
19.5 本章小结 636
第20章 HTML 5的疯狂俄罗斯方块 637
20.1 俄罗斯方块简介 638
20.2 开发游戏界面 639
20.2.1 开发界面布局 639
20.2.2 开发游戏界面组件 640
20.3 俄罗斯方块的数据模型 640
20.3.1 定义数据模型 641
20.3.2 初始化游戏状态数据 641
20.4 实现游戏逻辑 644
20.4.1 处理方块掉落 644
20.4.2 处理方块左移 648
20.4.3 处理方块右移 650
20.4.4 处理方块旋转 651
20.4.5 初始化游戏状态 653
20.5 本章小结 654

第1章 前端开发与Ajax技术 1
1.1 重新思考Web应用 2
1.1.1 应用系统的发展史 2
1.1.2 传统Web应用的优势和缺点 3
1.2 重新设计Web应用 4
1.2.1 富Internet应用 4
1.2.2 改进的服务器通信 5
1.2.3 丰富的客户端交互 6
1.3 前端开发介绍 7
1.3.1 XMLHttpRequest简介 7
1.3.2 前端开发的核心技术 7
1.3.3 前端Ajax的特征 9
1.3.4 Ajax带来的优势 10
1.4 前端开发体验:Ajax聊天室 11
1.4.1 实现业务逻辑组件 12
1.4.2 注册、登录控制器 15
1.4.3 注册、登录视图 16
1.4.4 异步发送请求 17
1.4.5 聊天控制器 18
1.4.6 解析服务器响应 21
1.4.7 何时发送请求 21
1.5 前端开发的技术难点 24
1.6 本章小结 25
第2章 HTML 5增强的XMLHttpRequest对象 26
2.1 XMLHttpRequest对象的方法和属性 27
2.1.1 XMLHttpRequest对象的方法 27
2.1.2 XMLHttpRequest对象的属性 30
2.2.3 XMLHttpRequest对象的事件 32
2.2 发送请求 33
2.2.1 发送简单请求 33
2.2.2 发送GET请求 34
2.2.3 发送POST请求 36
2.2.4 发送XML请求 37
2.2.5 发送表单数据 40
2.2.6 发送Blob对象 42
2.3 处理响应 44
2.3.1 处理响应的时机 44
2.3.2 使用文本响应 44
2.3.3 使用JSON响应 45
2.3.4 使用Blob或ArrayBuffer响应 48
2.4 XMLHttpRequest对象的运行周期 50
2.5 跨域请求和安全性问题 50
2.5.1 跨域请求 50
2.5.2 安全性问题 53
2.5.3 性能问题 54
2.6 本章小结 56
第3章 jQuery库详解 57
3.1 jQuery入门 58
3.1.1 理解jQuery的设计 58
3.1.2 下载和安装jQuery 59
3.1.3 让jQuery与其他JavaScript库共存 60
3.2 获取jQuery对象 61
3.2.1 jQuery核心函数 61
3.2.2 jQuery与jQuery.holdReady 62
3.2.3 以CSS选择器访问DOM元素 63
3.2.4 以伪类选择器访问DOM元素 65
3.2.5 表单相关的选择器 70
3.3 jQuery操作类数组的工具方法 72
3.3.1 过滤相关方法 74
3.3.2 仿DOM导航查找的相关方法 76
3.3.3 串联方法 78
3.4 jQuery支持的方法 79
3.4.1 jQuery命名空间的方法 80
3.4.2 数据存储的相关方法 83
3.4.3 操作属性的相关方法 84
3.4.4 操作CSS属性的相关方法 86
3.4.5 操作元素内容的相关方法 89
3.4.6 操作DOM节点的相关方法 90
3.5 jQuery事件相关方法 96
3.5.1 绑定事件处理函数 96
3.5.2 特定事件相关的方法 98
3.5.3 事件对象 99
3.6 动画效果相关的方法 100
3.6.1 简单动画和复杂动画 100
3.6.2 操作动画队列 103
3.7 jQuery的回调支持 104
3.7.1 回调支持的基本用法 104
3.7.2 创建Callbacks对象支持的选项 106
3.8 Ajax相关方法 108
3.8.1 三个工具方法 108
3.8.2 使用load方法 109
3.8.3 jQuery.ajax(options)与jQuery.ajaxSetup(options) 111
3.8.4 使用get/post方法 112
3.9 jQuery的Deferred对象 115
3.9.1 jQuery的异步调用 115
3.9.2 为多个耗时操作指定回调函数 119
3.9.3 为普通对象增加Defered接口 119
3.9.4 jQuery对象的promise方法 120
3.10 扩展jQuery和jQuery插件 121
3.11 本章小结 122
第4章 基于jQuery的应用:电子相册系统 123
4.1 实现持久层 124
4.1.1 实现持久化类 124
4.1.2 配置SessionFactory 126
4.2 实现DAO组件 127
4.2.1 开发通用DAO组件 127
4.2.2 DAO接口定义 130
4.2.3 完成DAO组件的实现类 131
4.3 实现业务逻辑层 132
4.3.1 实现业务逻辑组件 132
4.3.2 配置业务逻辑组件 134
4.4 实现客户端调用 135
4.4.1 访问业务逻辑组件 135
4.4.2 处理用户登录 136
4.4.3 获得用户相片列表 138
4.4.4 处理翻页 140
4.4.5 使用jQuery实现文件上传 141
4.4.6 加载页面时的处理 144
4.5 本章小结 145
第5章 AngularJS详解 147
5.1 AngularJS入门 148
5.1.1 理解AngularJS的基本设计 148
5.1.2 下载和安装AngularJS 149
5.2 表达式 150
5.2.1 简单表达式 150
5.2.2 复合对象表达式 151
5.2.3 AngularJS表达式的容错性 152
5.2.4 AngularJS表达式与JavaScript表达式 152
5.3 模块与控制器 153
5.3.1 模块的加载 153
5.3.2 控制器初始化$scope对象 155
5.3.3 $rootScope作用域 157
5.3.4 $watch方法的使用 158
5.4 过滤器 159
5.4.1 内置过滤器 159
5.4.2 在表达式中使用过滤器 160
5.4.3 在指令中使用过滤器 162
5.4.4 自定义过滤器 162
5.5 函数API 164
5.5.1 扩展型函数 164
5.5.2 jqLite函数 168
5.5.3 判断型函数 169
5.6 指令 170
5.6.1 表单相关的指令 170
5.6.2 表单的输入校验 175
5.6.3 事件相关的指令 178
5.6.4 流程控制相关的指令 179
5.6.5 绑定相关的指令 183
5.6.5 DOM及DOM状态相关指令 187
5.6.6 自定义指令 193
5.6.7 自定义指令的scope属性 195
5.6.8 自定义指令的transclude属性 197
5.6.9 自定义指令的link和compile属性 198
5.6.10 自定义指令的controller和controllerAs属性 202
5.6.11 自定义指令的require属性 203
5.7 调用内置服务 205
5.7.1 $animate服务 205
5.7.2 $cacheFactory服务 207
5.7.3 $compile服务 209
5.7.4 $document、$window、$timeout、$interval和$rootElement 211
5.7.5 $parse服务 214
5.7.6 $interpolate服务 214
5.7.7 $log服务 215
5.7.8 $q服务 216
5.7.9 $templateCache服务 218
5.8 自定义服务 219
5.8.1 使用factory()方法创建自定义服务 219
5.8.2 使用service()方法创建自定义服务 220
5.8.3 使用provider()方法创建自定义服务 221
5.8.4 使用$provide服务创建自定义服务 223
5.8.5 在过滤器中使用自定义服务 225
5.9 依赖注入 226
5.9.1 依赖注入机制简介 226
5.9.2 使用$injector对象获取组件 228
5.9.3 隐式依赖注入 230
5.9.4 行内数组式依赖注入 230
5.9.5 标记式依赖注入 231
5.10 与服务器交互 232
5.10.1 $http服务 232
5.10.2 $http的快捷方法 235
5.10.3 使用$http上传文件 237
5.10.4 使用$resource服务 239
5.11 多视图和路由 240
5.11.1 使用$routeProvider配置路由规则 240
5.11.2 创建多视图 242
5.11.3 通过路由切换视图 244
5.11.4 使用$location实现多视图切换 246
5.12 使用ui-router框架实现多视图 248
5.12.1 ui-router的下载和安装 248
5.12.1 使用$stateProvider配置路由 248
5.12.2 多视图切换与$state 250
5.12.3 多个命名的嵌套视图 252
5.13 本章小结 255
第6章 Bootstrap全局样式 256
6.1 Bootstrap 257
6.1.1 Bootstrap简介 257
6.1.2 下载和安装Bootstrap 257
6.2 网格布局 260
6.2.1 网格布局基础 261
6.2.2 多余的列另起一行 264
6.2.3 响应式列重置 264
6.2.4 单元格偏移 266
6.2.5 单元格排序 267
6.2.6 嵌套网格 268
6.3 Less和mixin 269
6.3.1 Less简介 269
6.3.2 Less的两种用法 270
6.3.3 Less的变量和运算符 274
6.3.4 mixin 274
6.3.5 内嵌规则 275
6.3.6 Bootstrap网格系统的变量和mixin 276
6.4 Bootstrap排版相关样式 278
6.4.1 标题元素和样式 278
6.4.2 段落 279
6.4.3 增强的HTML元素 280
6.4.4 对齐 282
6.4.5 改变大小写 283
6.4.6 列表 283
6.5 表格相关样式 286
6.5.1 基础表格 286
6.5.2 条纹表格 287
6.5.3 边框表格 287
6.5.4 鼠标高亮 288
6.5.5 紧凑型表格 289
6.5.6 响应式表格 289
6.5.7 表格行状态 290
6.6 图片和图标 291
6.6.1 图片相关样式 291
6.6.2 图标 293
6.7 辅助样式 294
6.7.1 情境背景色 294
6.7.2 情境文本颜色 295
6.7.3 关闭按钮和三角箭头 295
6.7.4 快速浮动 296
6.7.5 显示或隐藏内容 296
6.7.6 屏幕阅读器和键盘导航 297
6.7.7 图片替换 297
6.8 响应式布局相关样式 297
6.8.1 显示/隐藏相关样式 298
6.8.2 打印相关样式 299
6.9 表单相关样式 299
6.9.1 基础表单 299
6.9.2 行内表单 300
6.9.3 水平表单 302
6.9.4 多选框和单选框 303
6.9.5 表单控件的大小 305
6.9.6 静态控件 307
6.9.7 表单控件的状态 309
6.9.8 帮助文本 309
6.9.9 校验状态 310
6.9.10 校验状态的图标 311
6.10 本章小结 313
第7章 Bootstrap内置组件 314
7.1 按钮 315
7.1.1 按钮大小 316
7.1.2 按钮状态 317
7.2 下拉菜单 319
7.2.1 对齐 321
7.2.2 禁用菜单项 322
7.2.3 按钮式下拉菜单 323
7.2.4 分裂式按钮下拉菜单 324
7.2.5 大小 326
7.3 按钮组 327
7.3.1 基本按钮组 327
7.3.2 工具栏 328
7.3.3 控制按钮组的大小 329
7.3.4 按钮组嵌套下拉菜单 329
7.3.5 两端对齐的按钮组 331
7.4 输入框组 332
7.4.1 基本输入框组 332
7.4.2 控制输入框组的大小 334
7.4.3 单选框或多选框作为附加元素 335
7.4.4 按钮式下拉菜单作为附加元素 336
7.4.5 多按钮 337
7.5 导航 338
7.5.1 简单导航的基础样式 338
7.5.2 两端对齐 340
7.5.3 嵌套下拉菜单 340
7.5.4 路径导航 341
7.5.5 基础导航条 342
7.5.6 导航条中的品牌图标 344
7.5.7 导航条中的按钮 344
7.5.8 导航条中的表单 345
7.5.9 导航条中的文本和链接 346
7.5.10 导航条中的组件的排列方式 347
7.5.11 设置导航条的位置 347
7.5.12 响应式导航条 349
7.5.13 分页导航 351
7.5.14 控制分页导航的大小 352
7.5.15 翻页导航 352
7.6 标签和徽章 353
7.6.1 标签 354
7.6.2 徽章 355
7.7 面板 355
7.7.1 面板的基础结构 355
7.7.2 面板嵌套表格 358
7.7.3 面板嵌套列表组 359
7.8 巨幕、页头和Well 361
7.8.1 巨幕 361
7.8.2 页头 362
7.8.3 well 362
7.9 缩略图 363
7.10 警告框 365
7.10.1 警告框基础 365
7.10.2 警告框中的链接 367
7.11 进度条 367
7.11.1 各种样式的进度条 367
7.11.2 带进度值的进度条 369
7.11.3 动画效果 370
7.11.4 多进度效果 371
7.12 媒体对象 372
7.12.1 媒体对象的基本组成 372
7.12.2 对齐方式 374
7.12.3 嵌套媒体对象 375
7.12.4 媒体对象列表 376
7.13 列表组 377
7.13.1 列表组基础 378
7.13.2 链接列表组 379
7.13.3 按钮列表组 379
7.13.4 列表项的状态 380
7.13.5 定制内容 381
7.14 本章小结 381
第8章 Bootstrap的JS插件 382
8.1 插件库概述 383
8.1.1 使用插件的两种方式 383
8.1.2 解决命名冲突 384
8.2 对话框 384
8.2.1 静态对话框 384
8.2.2 使用data-*属性弹出对话框 387
8.2.3 使用JS弹出对话框 388
8.2.4 对话框事件 389
8.2.5 基于事件源改变对话框内容 390
8.3 下拉菜单 392
8.3.1 使用data-*属性触发下拉菜单 392
8.3.2 使用JS触发下拉菜单 393
8.3.3 下拉菜单事件 394
8.4 滚动监听 395
8.4.1 通过data-*属性实现滚动监听 395
8.4.2 使用JS实现滚动监听 397
8.5 标签页 398
8.5.1 静态标签页 398
8.5.2 使用data-*属性切换标签页 399
8.5.3 使用JS切换标签页 401
8.5.4 胶囊式标签页 402
8.5.5 标签页事件 403
8.6 工具提示 404
8.6.1 使用data-*属性和JS触发工具提示 405
8.6.2 工具提示支持的属性 406
8.6.3 工具提示的事件 407
8.7 弹出框 408
8.7.1 使用data-*属性和JS触发弹出框 409
8.7.2 焦点触发的弹出框 411
8.7.3 弹出框支持的属性 411
8.7.4 弹出框的事件 412
8.8 警告框 412
8.8.1 使用data-*属性关闭警告框 412
8.8.2 使用JS关闭警告框 413
8.8.3 警告框事件 413
8.9 按钮 414
8.9.1 切换按钮状态 414
8.9.2 单选按钮或多选按钮 414
8.9.2 使用JS方法改变按钮文本 416
8.10 折叠插件 416
8.10.1 简单折叠效果 416
8.10.2 手风琴效果 417
8.10.3 使用JS触发折叠元素 419
8.10.4 折叠插件的相关事件 420
8.11 轮播图 420
8.11.1 静态轮播图 420
8.11.2 通过data-*属性激活轮播图 422
8.11.3 通过JS触发轮播图 424
8.11.4 轮播图事件 425
8.12 本章小结 426
第9章 Angular+Bootstrap整合开发:图书管理系统 427
9.1 总体说明和概要设计 428
9.1.1 系统的总体架构设计 428
9.1.2 数据库设计 429
9.2 实现Hibernate持久化类 430
9.2.1 设计Domain Object 430
9.2.2 实现Domain Object 431
9.3 DAO层实现 435
9.3.1 DAO的基础配置 435
9.3.2 实现DAO组件 436
9.3.3 部署DAO组件 437
9.4 业务逻辑层实现 438
9.4.1 设计业务逻辑组件 439
9.4.2 依赖注入DAO组件 441
9.4.3 业务逻辑组件的异常处理 441
9.4.4 实现业务逻辑组件 442
9.4.5 事务管理 443
9.4.6 配置业务层组件 444
9.5 前端整合开发 445
9.5.1 定义AngularJS路由 445
9.5.2 Spring MVC控制器的异常处理 447
9.5.3 管理图书种类 447
9.5.4 修改图书种类 451
9.5.5 管理图书 453
9.5.6 修改图书 457
9.5.7 图书入库 459
9.5.8 销售图书 465
9.6 本章小结 470
第10章 jQuery+Bootstrap整合开发:电子拍卖系统 471
10.1 总体说明和概要设计 472
10.1.1 系统的总体架构设计 472
10.1.2 数据库设计 473
10.2 实现Hibernate持久化类 474
10.2.1 设计Domain Object 474
10.2.2 实现Domain Object 475
10.3 DAO层实现 479
10.3.1 DAO的基础配置 480
10.3.2 实现DAO组件 481
10.3.3 部署DAO组件 484
10.4 业务逻辑层实现 485
10.4.1 设计业务逻辑组件 485
10.4.2 依赖注入DAO组件 487
10.4.3 业务逻辑组件的异常处理 488
10.4.4 处理用户竞价 489
10.4.5 判断拍卖物品状态 491
10.4.6 事务管理 492
10.4.7 配置业务层组件 493
10.5 开发前端JSON接口 494
10.5.1 初始化Spring容器 494
10.5.2 开发Spring MVC控制器 496
10.5.3 处理前端权限控制 498
10.6 前端整合开发 500
10.6.1 定义系统首页 500
10.6.2 浏览所有流拍物品 502
10.6.3 处理用户登录 503
10.6.4 管理物品 507
10.6.6 管理物品种类 512
10.6.7 查看竞得物品 515
10.6.8 查看自己的竞价记录 517
10.6.9 浏览拍卖物品 518
10.6.10 参与竞价 520
10.7 本章小结 524