本书赞誉
译者序
前言
第1章 渐进增强模型 / 1
1.1 渐进增强式网页开发模型的定义 / 1
1.1.1 渐进增强式开发模型的历史 / 2
1.1.2 渐进增强式开发模型的目标 / 3
1.1.3 易访问性 / 4
1.1.4 代码可读性 / 4
1.1.5 渐进增强与平稳退化 / 4
1.2 结构层 / 5
1.3 表现层 / 9
1.3.1 内联css / 9
1.3.2 链接外部样式表 / 10
1.4 行为层 / 11
1.4.1 内联javascript代码 / 12
1.4.2 嵌入式javascript代码 / 13
1.4.3 外联式的低调javascript代码 / 15
1.5 渐进增强式开发模型的好处 / 16
.1.5.1 性能 / 17
1.5.2 适应新趋势 / 17
1.5.3 触摸界面 / 19
1.6 渐进增强模型结语 / 20
1.7 总结 / 20
1.8 习题 / 20
第2章 javascript语言在浏览器中的运用 / 21
2.1 javascript风云录 / 22
2.1.1 源起 / 22
2.1.2 渐进增强模型 / 24
2.1.3 行为层 / 25
2.1.4 javascript的未来 / 26
2.2 浏览器与javascript代码的交互 / 26
2.2.1 http请求 / 27
2.2.2 javascript引擎与渲染引擎 / 31
2.3 javascript语言能做什么 / 32
2.3.1 修改html文档 / 32
2.3.2 与服务器通信 / 33
2.3.3 存储数据 / 34
2.4 javascript的正确用法 / 34
2.4.1 改善用户体验 / 35
2.4.2 编写可靠的javascript代码 / 35
2.4.3 创建备用方案 / 37
2.5 javascript辅助开发工具 / 38
2.5.1 语言内置的工具 / 39
2.5.2 浏览器中的工具 / 40
2.6 总结 / 40
2.7 习题 / 41
第3章 javascript术语解析 / 42
3.1 基本术语 / 42
3.1.1 文档对象模型(dom) / 42
3.1.2 父节点 / 43
3.1.3 子节点 / 43
3.1.4 兄弟节点 / 44
3.1.5 变量 / 44
3.1.6 字符串 / 46
3.1.7 注释 / 46
3.1.8 操作符 / 47
3.1.9 use strict指令 / 48
3.2 数据存储方式 / 48
3.2.1 缓存 / 48
3.2.2 数组 / 49
3.2.3 cookies / 49
3.2.4 javascript对象表示法(json) / 50
3.2.5 对象 / 50
3.3 创建交互层 / 51
3.3.1 循环 / 51
3.3.2 条件语句 / 52
3.3.3 switch语句 / 53
3.3.4 函数 / 53
3.3.5 匿名函数 / 54
3.3.6 回调函数 / 56
3.3.7 方法 / 56
3.3.8 事件 / 57
3.3.9 ajax / 58
3.4 总结 / 58
3.5 习题 / 59
第4章 操作文档对象模型 / 60
4.1 文档对象模型是什么 / 60
4.2 dom结构树 / 61
4.2.1 元素节点 / 62
4.2.2 文本节点 / 63
4.2.3 属性节点 / 64
4.3 处理元素节点 / 66
4.3.1 根据id定位元素 / 66
4.3.2 根据标签名称定位元素 / 67
4.3.3 根据class属性定位元素 / 70
4.3.4 在javascript中使用css选择器来定位节点 / 71
4.4 处理属性节点 / 73
4.4.1 获取属性 / 74
4.4.2 设置属性 / 75
4.4.3 移除属性 / 76
4.5 处理文本节点并修改其内容 / 76
4.6 遍历dom / 77
4.6.1 访问首尾两个子节点 / 79
4.6.2 在dom中动态地添加和移除节点 / 80
4.6.3 向dom中新增元素 / 81
4.6.4 从dom中移除元素 / 82
4.7 总结 / 82
4.8 习题 / 83
第5章 javascript数据存储 / 84
5.1 变量 / 84
5.1.1 字符串 / 85
5.1.2 数值 / 86
5.1.3 boolean / 87
5.1.4 与变量相关的性能问题 / 87
5.2 数组 / 88
5.2.1 基本数组 / 88
5.2.2 关联数组 / 90
5.2.3 多维数组 / 90
5.2.4 向数组中新增数据 / 91
5.2.5 数组对象各方法的使用 / 92
5.3 join方法 / 92
5.4 slice方法 / 93
5.5 shift与unshift方法 / 94
5.6 pop方法 / 95
5.7 concat方法 / 95
5.8 sort方法 / 96
5.9 对象 / 96
5.10 json / 98
5.10.1 使用json格式的好处 / 99
5.10.2 调用api / 99
5.11 html5标准中的网络数据存储方式 / 100
5.12 setitem方法 / 101
5.13 getitem方法 / 102
5.14 removeitem方法 / 102
5.14.1 以json格式存放大量数据 / 103
5.14.2 编写健壮的网络存储代码 / 104
5.15 总结 / 104
5.16 习题 / 105
第6章 变量、函数及循环 / 106
6.1 定义变量 / 106
6.1.1 将变量集中到一起 / 107
6.1.2 保留字 / 107
6.2 函数 / 109
6.2.1 普通函数 / 109
6.2.2 匿名函数 / 110
6.3 作用域 / 111
6.3.1 回调函数 / 112
6.3.2 返回数据 / 113
6.3.3 将函数作为方法使用 / 115
6.4 循环 / 116
6.5 条件语句 / 119
6.5.1 if语句 / 120
6.5.2 if/else语句 / 121
6.5.3 switch语句 / 121
6.5.4 if与switch语句的对比 / 122
6.6 综合运用本章所学内容 / 123
6.7 总结 / 125
6.8 习题 / 125
第7章 以事件处理实现用户交互 / 126
7.1 设置事件处理程序 / 127
7.1.1 事件处理器 / 128
7.1.2 事件监听器 / 129
7.1.3 事件绑定 / 131
7.1.4 解除事件绑定 / 133
7.2 鼠标与键盘事件 / 133
7.2.1 click事件 / 136
7.2.2 focus与blur事件 / 138
7.2.3 易访问性 / 139
7.2.4 change事件 / 139
7.2.5 mouseover与mouseout事件(处理鼠标悬停) / 140
7.2.6 submit事件 / 141
7.2.7 阻止浏览器的默认行为 / 143
7.2.8 keydown、keypress与keyup事件 / 144
7.2.9 本节代码汇总 / 144
7.3 触摸及方向变换事件 / 147
7.3.1 touchstart与touchend事件 / 148
7.3.2 touchmove事件 / 149
7.3.3 orientationchange事件 / 150
7.3.4 支持触摸事件的设备 / 151
7.4 触摸事件相关代码汇总 / 151
7.5 总结 / 152
7.6 习题 / 153
第8章 通过ajax与服务器通信 / 154
8.1 ajax的历史 / 155
8.1.1 服务器通信 / 156
8.1.2 xmlhttprequest对象 / 157
8.2 创建ajax调用 / 159
8.2.1 向服务器发送请求 / 160
8.2.2 接收服务器传回的数据 / 163
8.2.3 反复执行ajax调用 / 169
8.3 ajax数据格式 / 170
8.3.1 xml / 170
8.3.2 html / 172
8.3.3 json / 173
8.4 ajax的易访问性 / 174
8.5 ajax常见误区 / 176
8.6 本章代码汇总 / 178
8.7 ajax的未来 / 182
8.8 总结 / 183
8.9 习题 / 184
第9章 代码组织方式 / 185
9.1 通用代码风格规范 / 186
9.1.1 作用域 / 187
9.1.2 在遇到错误时尽快终止 / 189
9.1.3 用户体验 / 191
9.2 代码设计 / 191
9.2.1 文件与目录结构 / 192
9.2.2 文档内的脚本 / 193
9.2.3 变量声明 / 194
9.2.4 变量与函数的命名 / 196
9.2.5 注释 / 196
9.2.6 缩进 / 198
9.2.7 空格 / 199
9.2.8 语句内间隔 / 200
9.2.9 断行 / 201
9.2.10 数学运算与操作符 / 202
9.2.11 eval()的用法 / 203
9.2.12 不宜制定过于死板的代码风格 / 205
9.3 代码结构 / 206
9.3.1 函数 / 206
9.3.2 匿名函数 / 207
9.3.3 以变量形式出现的函数 / 208
9.3.4 以方法形式出现的函数 / 209
9.3.5 javascript开发模式 / 210
9.4 总结 / 214
9.5 习题 / 215
第10章 用程序库更便捷地编写javascript代码 / 216
10.1 javascript程序库基础 / 217
10.1.1 程序库的学习过程 / 218
10.1.2 语法 / 219
10.1.3 专注于目标 / 219
10.1.4 创造捷径 / 220
10.1.5 解决浏览器兼容性问题 / 221
10.1.6 流行的程序库 / 222
10.2 jquery基础知识 / 227
10.2.1 document.ready / 229
10.2.2 选择器 / 229
10.2.3 遍历dom / 231
10.2.4 添加样式信息 / 232
10.2.5 事件绑定 / 233
10.2.6 动画 / 234
10.3 jquery中的非基础知识 / 234
10.3.1 使用jquery库执行ajax调用 / 235
10.3.2 用jquery遍历数据 / 237
10.3.3 函数链 / 238
10.4 以插件扩展程序库 / 240
10.5 使用程序库的好处 / 242
10.5.1 流行度与社区支持度 / 242
10.5.2 高效代码 / 244
10.6 使用程序库的缺点 / 245
10.6.1 开销 / 245
10.6.2 性能 / 245
10.6.3 对程序库的过分依赖及其寿命问题 / 246
10.7 微型程序库的使用 / 246
10.7.1 微型程序库的优点 / 247
10.7.2 微型程序库的缺点 / 248
10.8 总结 / 249
10.9 习题 / 249
第11章 html5 javascript api / 250
11.1 html5是什么 / 251
11.2 新标记(新html元素) / 251
11.2.1 创建更好的语义 / 252
11.2.2 构建更易访问的内容 / 252
11.3 javascript api / 255
11.3.1 navigator对象 / 255
11.3.2 地理位置api / 256
11.3.3 音频与视频 / 258
11.3.4 history api / 261
11.3.5 工作线程 / 266
11.4 device api / 272
11.4.1 电池状态api / 273
11.4.2 震动api / 275
11.4.3 网络信息api / 276
11.5 通过功能检测技术来尝试新的api / 279
11.6 总结 / 280
11.7 习题 / 280
第12章 javascript深入研究指要 / 281
12.1 对关键知识点的简要回顾 / 282
12.1.1 渐进增强模型 / 282
12.1.2 操作dom / 283
12.1.3 数据存储 / 285
12.1.4 服务器通信 / 287
12.2 适合网站设计师的javascript研究方向 / 288
12.2.1 高级界面设计 / 288
12.2.2 用javascript代码操控css渐变效果 / 293
12.2.3 与桌面操作系统交互 / 297
12.3 适合网站开发者的javascript研究方向 / 302
12.3.1 javascript模板 / 302
12.3.2 通过node.js库以javascript语言实现服务器程序 / 308
12.4 总结 / 311
12.5 习题 / 311
参考答案 / 312
· · · · · · (
收起)