第1章 HTML5与移动网站 1
1.1 简介 1
1.2 确定网站的适用移动设备 2
1.2.1 用户最常用的平台和浏览器是什么 3
1.2.2 有多少用户使用支持现代脚本的移动设备 3
1.2.3 Google Analytics的替代品 4
1.2.4 Google Analytics的精准度 4
1.2.5 对服务端读取速度的担忧 5
1.3 配置移动开发工具 5
1.3.1 准备 5
1.3.2 实践 5
1.3.3 回顾 6
1.3.4 延伸 6
1.4 BlackBerry仿真器 7
1.4.1 准备 7
1.4.2 实践 7
1.5 配置移动开发环境 9
1.5.1 准备 9
1.5.2 实践 9
1.5.3 回顾 10
1.5.4 延伸 10
1.6 在移动网站中使用HTML5 12
1.6.1 准备 12
1.6.2 实践 12
1.6.3 回顾 12
1.6.4 延伸 12
1.7 跨浏览器HTML5 14
1.7.1 准备 14
1.7.2 实践 14
1.7.3 回顾 15
1.7.4 延伸 16
1.8 移动设计 17
1.8.1 准备 17
1.8.2 实践 17
1.8.3 回顾 20
1.8.4 延伸 21
1.9 定义个内容策略 23
1.9.1 准备 23
1.9.2 实践 23
1.9.3 回顾 25
1.9.4 延伸 25
第2章 移动端的配置和优化 27
2.1 简介 27
2.2 通过界面图标启动Web应用 28
2.2.1 准备 28
2.2.2 实践 28
2.2.3 回顾 29
2.2.4 延伸 30
2.2.5 参考 31
2.3 避免文本字体大小重置 31
2.3.1 准备 32
2.3.2 实践 33
2.3.3 回顾 34
2.3.4 延伸 34
2.4 优化浏览器视口宽度设置 35
2.4.1 准备 35
2.4.2 实践 36
2.4.3 回顾 37
2.4.4 延伸 38
2.5 修复移动版Safari的re-flow scale问题 38
2.5.1 准备 39
2.5.2 实践 40
2.5.3 回顾 42
2.5.4 延伸 42
2.6 在浏览器中启动手机原生应用 43
2.6.1 准备 43
2.6.2 实践 43
2.6.3 回顾 44
2.6.4 延伸 45
2.7 iPhone下全屏模式启动 46
2.7.1 准备 46
2.7.2 实践 46
2.7.3 回顾 47
2.7.4 延伸 47
2.8 防止iOS在聚焦时自动缩放 48
2.8.1 准备 48
2.8.2 实践 48
2.8.3 回顾 49
2.8.4 延伸 50
2.9 禁用或限制部分WebKit特性 50
2.9.1 准备 50
2.9.2 实践 50
2.9.3 回顾 52
2.9.4 延伸 52
第3章 移动设备的交互方式 54
3.1 简介 54
3.2 利用触控来移动页面元素 54
3.2.1 准备 54
3.2.2 实践 55
3.2.3 回顾 56
3.2.4 延伸 56
3.2.5 参考 57
3.3 检测和处理横竖屏切换事件 57
3.3.1 准备 57
3.3.2 实践 58
3.3.3 回顾 60
3.3.4 延伸 60
3.3.5 参考 64
3.4 利用手势旋转页面元素 64
3.4.1 准备 64
3.4.2 实践 64
3.4.3 回顾 66
3.4.4 延伸 66
3.4.5 参考 67
3.5 利用滑动创建图库 67
3.5.1 准备 67
3.5.2 实践 67
3.5.3 回顾 70
3.5.4 延伸 70
3.5.5 参考 71
3.6 利用手势操作图片缩放 72
3.6.1 准备 72
3.6.2 实践 72
3.6.3 回顾 73
3.6.4 延伸 73
3.6.5 参考 74
第4章 构建快速响应式移动互联网站点 75
4.1 简介 75
4.2 使用HTML5语法构建页面 76
4.2.1 准备 76
4.2.2 实践 76
4.2.3 回顾 77
4.2.4 延伸 78
4.2.5 参考 79
4.3 使用CSS3特性做渐进增强 79
4.3.1 准备 80
4.3.2 实践 80
4.3.3 回顾 82
4.3.4 延伸 83
4.3.5 参考 84
4.4 使用响应式设计 84
4.4.1 准备 85
4.4.2 实践 85
4.4.3 回顾 87
4.4.4 延伸 87
4.5 优化polyfills脚本的加载速度 87
4.5.1 准备 87
4.5.2 实践 87
4.5.3 回顾 88
4.5.4 延伸 90
4.5.5 参考 90
4.6 检测用户客户端 90
4.6.1 准备 90
4.6.2 实践 90
4.6.3 回顾 91
4.6.4 延伸 91
4.7 使用书签气泡为应用添加桌面快捷方式 92
4.7.1 准备 92
4.7.2 实践 92
4.7.3 回顾 93
4.7.4 参考 93
4.8 构建可自动伸缩的文本输入框 94
4.8.1 准备 94
4.8.2 实践 94
4.8.3 回顾 95
4.8.4 延伸 95
4.8.5 参考 96
4.9 加速按钮反馈 96
4.9.1 准备 96
4.9.2 实践 96
4.9.3 回顾 97
4.9.4 延伸 99
4.9.5 参考 99
4.10 隐藏浏览器的地址栏 99
4.10.1 准备 99
4.10.2 实践 99
4.10.3 回顾 101
4.10.4 参考 102
4.11 构建移动互联网站点的站点地图 102
4.11.1 准备 102
4.11.2 实践 102
4.11.3 回顾 103
4.11.4 延伸 103
第5章 移动设备访问 104
5.1 简介 104
5.2 获取位置信息 105
5.2.1 准备 105
5.2.2 实践 105
5.2.3 回顾 107
5.2.4 延伸 107
5.3 跨浏览器定位 107
5.3.1 准备 107
5.3.2 实践 108
5.3.3 回顾 109
5.3.4 延伸 109
5.4 基于地理信息显示地图 110
5.4.1 准备 110
5.4.2 实践 110
5.4.3 回顾 112
5.4.4 延伸 113
5.5 实时显示地理位置 114
5.5.1 准备 114
5.5.2 实践 114
5.5.3 回顾 117
5.6 使用DeviceOrientation事件 118
5.6.1 准备 118
5.6.2 实践 118
5.6.3 回顾 120
5.6.4 延伸 121
5.7 使用foursquare的定位 122
5.7.1 准备 122
5.7.2 实践 122
5.7.3 回顾 123
5.7.4 延伸 124
第6章 移动富媒体 125
6.1 简介 125
6.2 移动设备上播放音频 126
6.2.1 准备 126
6.2.2 实践 126
6.2.3 回顾 127
6.2.4 延伸 128
6.3 移动设备上播放视频 129
6.3.1 准备 130
6.3.2 实践 130
6.3.3 回顾 131
6.3.4 延伸 132
6.4 使用离线缓存 132
6.4.1 准备 133
6.4.2 实践 133
6.4.3 回顾 134
6.4.4 延伸 134
6.5 使用网络存储(Web Storage) 136
6.5.1 准备 136
6.5.2 实践 136
6.5.3 回顾 139
6.5.4 延伸 139
6.6 使用Web Workers 140
6.6.1 准备 141
6.6.2 实践 141
6.6.3 回顾 143
6.7 使用session和history API构建类Flash导航效果 145
6.7.1 准备 146
6.7.2 实践 146
6.7.3 回顾 148
6.7.4 延伸 149
第7章 移动设备调试 150
7.1 简介 150
7.2 使用Opera Dragonfly远程调试 150
7.2.1 准备 150
7.2.2 实践 151
7.2.3 回顾 153
7.2.4 延伸 153
7.3 使用weinre远程调试 153
7.3.1 准备 154
7.3.2 实践 154
7.3.3 回顾 155
7.4 在移动设备上使用Firebug 157
7.4.1 准备 157
7.4.2 实践 157
7.4.3 回顾 158
7.4.4 延伸 159
7.5 使用JS Console远程调试 160
7.5.1 准备 160
7.5.2 实践 160
7.5.3 回顾 162
7.5.4 延伸 163
7.6 设置移动Safari调试器 163
7.6.1 准备 163
7.6.2 实践 163
7.6.3 回顾 167
第8章 服务器端性能调优 168
8.1 简介 168
8.2 防止移动设备转码(Mobile Transcoding) 169
8.2.1 准备 169
8.2.2 实践 169
8.2.3 回顾 169
8.2.4 延伸 170
8.3 添加移动设备支持的MIME类型 170
8.3.1 准备 170
8.3.2 实践 171
8.3.3 回顾 171
8.3.4 延伸 171
8.4 正确显示cache manifest文件 171
8.4.1 准备 172
8.4.2 实践 172
8.4.3 回顾 172
8.5 在头文件设置未来过期时间 172
8.5.1 准备 172
8.5.2 实践 173
8.5.3 回顾 173
8.5.4 延伸 175
8.6 使用Gzip压缩 175
8.6.1 准备 175
8.6.2 实践 176
8.6.3 回顾 177
8.6.4 延伸 178
8.7 移除ETags 178
8.7.1 准备 179
8.7.2 实践 179
8.7.3 回顾 179
8.7.4 延伸 179
第9章 移动性能测试 181
9.1 简介 181
9.2 使用Blaze的移动设备速度测试 181
9.2.1 准备 182
9.2.2 实践 182
9.2.3 回顾 183
9.2.4 延伸 183
9.3 在线分析移动页面速度 184
9.3.1 准备 184
9.3.2 实践 184
9.3.3 回顾 185
9.3.4 延伸 186
9.4 PCAP网站性能分析 186
9.4.1 准备 186
9.4.2 实践 187
9.4.3 回顾 188
9.4.4 延伸 188
9.5 移动版HTTP Archive 189
9.5.1 准备 189
9.5.2 实践 189
9.5.3 回顾 190
9.5.4 延伸 190
9.6 使用Jdrop存储性能数据 191
9.6.1 准备 191
9.6.2 实践 191
9.6.3 回顾 192
9.6.4 延伸 192
第10章 拥抱移动互联网特性 193
10.1 简介 193
10.2 window.onerror 194
10.2.1 准备 194
10.2.2 实践 194
10.2.3 回顾 195
10.2.4 延伸 195
10.3 使用ECMAScript 5中的新方法 195
10.3.1 准备 196
10.3.2 实践 196
10.3.3 回顾 197
10.3.4 延伸 199
10.4 HTML5中新的输入类型 200
10.4.1 准备 200
10.4.2 实践 200
10.4.3 回顾 201
10.4.4 延伸 202
10.5 在HTML中内嵌SVG 202
10.5.1 准备 202
10.5.2 实践 202
10.5.3 回顾 202
10.5.4 延伸 202
10.6 position:fixed 203
10.6.1 准备 203
10.6.2 实践 203
10.6.3 回顾 204
10.7 overflow:scroll 204
10.7.1 准备 204
10.7.2 实践 204
10.7.3 回顾 205
10.7.4 延伸 205