Web性能实战
全新正版 极速发货
¥
61.14
6.2折
¥
99
全新
库存7件
作者(美)杰里米·瓦格纳
出版社人民邮电出版社
ISBN9787115538321
出版时间2020-06
装帧平装
开本16开
定价99元
货号1202073616
上书时间2024-07-11
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
杰里米·瓦格纳(Jeremy Wagner) Web性能咨询师、Web前端开发者,在多家机构和大公司积累了十余年经验。撰写过大量Web性能方面的图书和文章,还经常在各种Web开发会议上发表演讲。
目录
章理解Web性能 1
1.1理解Web性能 1
1.1.1Web性能和用户体验 1
1.1.2Web浏览器如何与Web服务器通信 2
1.1.3Web页面如何加载 4
1.2上手准备 5
1.2.1安装Node.js和Git 6
1.2.2下载并运行客户的网站 6
1.2.3模拟网络连接 7
1.3检查客户网站 8
1.4优化客户网站 10
1.4.1缩小资源 11
1.4.2使用服务器压缩 13
1.4.3压缩图像 16
1.5最终性能测试 18
1.6小结 19
第2章使用评估工具 20
2.1使用GooglePageSpeedInsights进行评估 20
2.1.1评估网站性能 20
2.1.2使用GoogleAnalytics进行批量报告 23
2.2使用基于浏览器的评估工具 24
2.3检查网络请求 25
2.3.1查看计时信息 25
2.3.2查看HTTP请求和响应头 27
2.4渲染性能检查工具 29
2.4.1理解浏览器如何渲染网页 29
2.4.2使用GoogleChrome的Performance面板 30
2.4.3识别问题事件:jank是元凶 32
2.4.4用JavaScript在时间线中标记点 37
2.4.5其他浏览器中的渲染分析器 38
2.5在Chrome中对JavaScript进行基准测试 39
2.6模拟和监控设备 40
2.6.1在桌面Web浏览器中模拟设备 41
2.6.2在Android设备上远程调试网站 42
2.6.3在iOS设备上远程调试网站 43
2.7创建自定义网络节流配置 44
2.8小结 45
第3章优化CSS 47
3.1直入主题,保持DRY 47
3.1.1简写CSS 47
3.1.2使用CSS浅选择器 50
3.1.3挑选浅选择器 51
3.1.4LESS和SASS预编译器:简单就是美 52
3.1.5不要重复自己 53
3.1.6实现DRY 53
3.1.7使用csscss查找冗余 54
3.1.8分割CSS 56
3.1.9自定义框架下载 57
3.2移动优先即用户优先 58
3.2.1移动优先与桌面优先 58
3.2.2Mobilegeddon算法 61
3.2.3使用Google的移动友好指南 62
3.2.4验证网站的移动友好性 63
3.3对CSS进行性能调整 63
3.3.1避免使用@import声明 63
3.3.2@import串行请求 64
3.3.3并行请求 64
3.3.4在中放置CSS 65
3.3.5防止无样式内容闪烁 65
3.3.6提高渲染速度 66
3.3.7使用更快的选择器 66
3.3.8构建和运行基准测试 67
3.3.9检查基准测试结果 68
3.3.10尽可能使用flexbox 69
3.3.11对比盒子模型和flexbox样式 69
3.3.12检查基准测试结果 70
3.4使用CSS过渡 71
3.4.1使用CSS过渡 71
3.4.2观察CSS过渡性能 73
3.4.3使用will-change属性优化过渡 74
3.5小结 75
第4章理解关键CSS 76
4.1关键CSS及其解决的问题 76
4.1.1理解折叠 76
4.1.2理解渲染阻塞 77
4.2关键CSS的原理 78
4.2.1加载首屏样式 79
4.2.2加载首屏以外内容的样式 79
4.3实现关键CSS 80
4.3.1配置并运行菜谱网站 81
4.3.2识别和分离首屏CSS 82
4.3.3加载首屏以外内容的CSS 88
4.4权衡收益 89
4.5提升可维护性 91
4.6多页网站的注意事项 91
4.7小结 92
第5章响应式图像 94
5.1为什么要考虑图像传输 94
5.2理解图像类型及其应用 96
5.2.1使用光栅图像 96
5.2.2使用SVG图像 99
5.2.3选择图像格式 100
5.3CSS中的图像传输 101
5.3.1使用媒体查询在CSS中适配显示器 101
5.3.2通过媒体查询适配高DPI显示器 104
5.3.3在CSS中使用SVG背景图像 106
5.4在HTML中传输图像 106
5.4.1图像的全局max-width规则 107
5.4.2使用srcset 107
5.4.3使用元素 110
5.4.4使用Picturefill提供polyfill支持 114
5.4.5在HTML中使用SVG 116
5.5小结 117
第6章图像的进一步处理 118
6.1使用图像雪碧图 118
6.1.1准备工作 119
6.1.2生成雪碧图 119
6.1.3使用生成的雪碧图 121
6.1.4使用雪碧图时的考量 122
6.1.5使用Grumpicon回退到光栅图像雪碧图 123
6.2缩小图像 124
6.2.1使用imagemin优化光栅图像 125
6.2.2优化SVG图像 129
6.3使用WebP编码图像 131
6.3.1使用imagemin编码有损WebP图像 132
6.3.2使用imagemin编码无损WebP图像 133
6.3.3支持不支持WebP的浏览器 134
6.4懒加载图像 136
6.4.1配置标记 137
6.4.2编写懒加载程序 138
6.4.3考虑不支持JavaScript的用户 144
6.5小结 146
第7章更快的字体 148
7.1明智地使用字体 149
7.1.1选择字体和字体变体 149
7.1.2构建你自己的@font-face级联 151
7.2压缩EOT和TTF字体格式 154
7.3取字体子集 156
7.3.1手动生成字体子集 156
7.3.2使用unicode-range属性传输字体子集 160
7.4优化字体加载 166
7.4.1理解字体加载的问题 166
7.4.2使用CSSfont-display属性 168
7.4.3使用字体加载API 169
7.4.4使用FontFaceObserver作为回退 173
7.5小结 175
第8章保持JavaScript的简洁与快速 176
8.1影响脚本加载行为 176
8.1.1合理放置script元素 177
8.1.2使用异步脚本加载 178
8.1.3使用async 178
8.1.4在多脚本加载中可靠地使用async 180
8.2使用更简洁的兼容jQuery的替代方案 182
8.2.1比较替代方案 182
8.2.2探索竞品 182
8.2.3比较大小 182
8.2.4比较性能 183
8.2.5实现替代方案 185
8.2.6使用Zepto 185
8.2.7理解使用Shoestring或Sprint的注意事项 185
8.3脱离jQuery编码 186
8.3.1检查DOM是否准备就绪 186
8.3.2选择元素并绑定事件 187
8.3.3使用classList操作元素上的类 188
8.3.4读取和修改元素属性与内容 189
8.3.5使用FetchAPI发起AJAX请求 192
8.3.6使用FetchAPI 192
8.3.7FetchAPI的polyfill 193
8.4使用requestAnimationFrame设置动画 194
8.4.1requestAnimationFrame一览 194
8.4.2计时器函数驱动的动画和requestAnimationFrame 194
8.4.3比较性能 195
8.4.4实现requestAnimationFrame 196
8.4.5了解Velocity.js 198
8.5小结 199
第9章使用ServiceWorker提升性能 200
9.1何为ServiceWorker 200
9.2编写个ServiceWorker 202
9.2.1安装ServiceWorker 203
9.2.2注册ServiceWorker 203
9.2.3拦截并缓存网络请求 207
9.2.4衡量性能收益 209
9.2.5优化网络请求的拦截行为 209
9.3更新ServiceWorker 212
9.3.1文件版本控制 212
9.3.2清理旧缓存 214
9.4小结 215
0章微调资源传输 217
10.1压缩资源 217
10.1.1遵循压缩指导原则 218
10.1.2使用Brotli压缩 221
10.2缓存资源 225
10.2.1理解缓存 225
10.2.2制定最佳缓存策略 230
10.2.3使缓存资源失效 233
10.3使用CDN资源 234
10.3.1使用CDN托管资源 234
10.3.2CDN发生故障怎么办 236
10.3.3使用子资源完整性验证CDN资源 237
10.4使用资源提示 239
10.4.1使用preconnect资源提示 239
10.4.2使用prefetch和preload资源提示 241
10.5小结 243
1章HTTP/2未来展望 245
11.1理解HTTP/2的必要性 245
11.1.1理解HTTP/1中的问题 246
11.1.2通过HTTP/2解决常见的HTTP/1问题 248
11.1.3在Node中编写一个简单的HTTP/2服务器 251
11.1.4观察收益 253
11.2探索HTTP/2对应的优化技术变化 255
11.2.1资源粒度与缓存效率 255
11.2.2识别HTTP/2的性能反模式 256
11.3使用服务器推送抢先发送资源 257
11.3.1理解服务器推送及其工作原理 258
11.3.2使用服务器推送 258
11.3.3测量服务器推送性能 261
11.4同时优化HTTP/1和HTTP/2 262
11.4.1HTTP/2服务器如何处理不支持HTTP/2的浏览器 262
11.4.2划分用户 263
11.4.3根据浏览器功能提供资源 264
11.5小结 269
2章使用gulp自动化优化任务 270
12.1关于gulp 270
12.1.1为什么要使用构建系统 271
12.1.2gulp的工作原理 272
12.2奠定基础 273
12.2.1组织项目文件夹 273
12.2.2安装gulp及其插件 274
12.3编写gulp任务 277
12.3.1剖析gulp任务 277
12.3.2编写核心任务 279
12.3.3编写实用程序任务 285
12.4深入理解gulp插件 288
12.5小结 289
附录A工具参考 290
附录B常用jQuery功能的原生等价实现 295
内容摘要
在Web变得越来越复杂的时代,解决Web性能问题正当时。本书旨在帮助读者创建更加快速的网站,内容涵盖Web性能的基础知识、性能评估工具、CSS优化、图像优化、字体优化、JavaScript相关的内容、Brotli压缩算法、资源提示、配置缓存策略、HTTP/2,等等。
本书适合熟悉HTML、CSS和JavaScript的前端开发人员阅读。
— 没有更多了 —
以下为对购买帮助不大的评价