书籍详情

Web前端性能优化

Web前端性能优化

作者:田佳奇 著

出版社:电子工业出版社

出版时间:2021-02-01

ISBN:9787121403583

定价:¥79.00

购买这本书可以去
内容简介
  本书涵盖了前端优化的方方面面,不只是教给读者解决具体性能问题的工具手册,更重要的是帮助读者构筑起一套完整的知识体系。在此基础上读者可以做到举一反三,触类旁通,从一个性能问题出发能够提出对整个系统的优化改进策略。虽然前端性能优化是一个老生常谈的问题,业界也已经有比较成熟的优化方法,但也需要承认这是一个不断进行着技术更新和迭代的领域,新技术的出现带来了新的方法同时也会引入新的问题,本书对这些新技术和新问题都有所涉及。另外说到底前端性能优化是一个工程实践,所以本书不仅有扎实全面的理论做基础,同时还包含了大量的实践案例,充分做到了理论结合实践。
作者简介
  田佳奇,985软件工程硕士,5年多前端开发经验。曾供职于华为,负责某大数据可视化平台的前端开发工作。之前在有赞工作,负责过有赞美业SaaS系统在PC、H5和小程序多端上的项目开发、持续集成及性能优化等工作。具有丰富的企业级项目开发经验,现就职于阿里云。
目录

第1 篇 前端性能优化概述

第1 章 什么是性能优化  1

1.1 性能的起因   1

1.2 性能的影响   2

1.2.1 用户的留存  2

1.2.2 网站的转化率  3

1.2.3 体验与传播  3

1.3 性能评估模型  4

1.3.1 响应 4

1.3.2 动画 5

1.3.3 空闲 5

1.3.4 加载 5

1.4 性能优化的步骤  6

1.4.1 性能测量   6

1.4.2 生命周期   7

1.4.3 优化方案   8

1.5 本章小结. 9


第2 章 前端页面的生命周期  10

2.1 一道前端面试题   10

2.2 网络请求线程开启   11

2.2.1 进程与线程. 12

2.2.2 单进程浏览器  12

2.2.3 多进程浏览器  13

2.3 建立HTTP 请求   15

2.3.1 DNS 解析   15

2.3.2 网络模型   16

2.3.3 TCP 连接   17

目录∣VII

2.4 前后端的交互   19

2.4.1 反向代理服务器  19

2.4.2 后端处理流程  20

2.4.3 HTTP 相关协议特性 20

2.4.4 浏览器缓存. 21

2.5 关键渲染路径   22

2.5.1 构建对象模型  23

2.5.2 渲染绘制   25

2.6 本章小结 26


第2 篇 典型模块的性能优化

第3 章 图像优化 27

3.1 图像基础 27

3.1.1 图像是否必需  28

3.1.2 矢量图和位图  28

3.1.3 分辨率  31

3.1.4 压缩的有损和无损    32

3.2 图像格式 33

3.2.1 JPEG  33

3.2.2 GIF 36

3.2.3 PNG  ... 38

3.2.4 WebP  39

3.2.5 SVG  ... 41

3.2.6 Base64   42

3.2.7 格式选择建议  43

3.3 使用建议 43

3.3.1 CSS Sprite   44

3.3.2 Web 字体   46

3.3.3 注意display:none 的使用   47

3.4 本章小结 48


第4 章 加载优化 49

4.1 图像延迟加载   49

4.1.1 什么是延迟加载  49

4.1.2 实现图片的延迟加载:传统方式  52

4.1.3 实现图片的延迟加载:Intersection Observer 方式  55

4.1.4 实现图片的延迟加载:CSS 类名方式. 56

4.1.5 原生的延迟加载支持 58

4.2 视频加载 59

4.2.1 不需要自动播放  59

4.2.2 视频代替GIF 动画  60

4.3 加载注意事项   61

4.3.1 首屏加载   62

4.3.2 资源占位   63

4.3.3 内容加载失败  63

4.3.4 图像解码延迟  64

4.3.5 JavaScript 是否可用    65

4.4 资源优先级   66

4.4.1 优先级  66

4.4.2 预加载  67

4.4.3 预连接  68

4.4.4 预提取  68

4.5 本章小结 69


第5 章 书写高性能的代码  71

5.1 数据存取 71

5.1.1 数据存取方式  71

5.1.2 作用域和作用域链    72

5.1.3 实战经验   73

5.2 流程控制 75

5.2.1 条件判断   75

5.2.2 循环语句   79

5.2.3 递归  ... 81

5.3 字符串处理   84

5.3.1 字符串拼接. 84

5.3.2 正则表达式. 85

5.3.3 优化正则表达式  87

5.4 快速响应 88

5.4.1 浏览器的限制  89

5.4.2 异步队列   89

5.5 其他建议 90

5.5.1 避免多重求值  90

5.5.2 使用位操作. 91

5.5.3 使用原生方法  92

5.6 本章小结 93


第6 章 构建优化 94

6.1 压缩与合并   94

6.1.1 HTML 压缩  94

6.1.2 CSS 压缩   97

6.1.3 JavaScript 压缩与混淆   98

6.1.4 文件合并   99

6.2 使用fis3 进行前端构建  102

6.2.1 构建流程   102

6.2.2 构建实操   103

6.3 使用webpack 进行前端构建   105

6.3.1 模块打包工具    105

6.3.2 安装建议   106

6.3.3 配置文件   106

6.4 webpack 的优化性能  107

6.4.1 尽量与时俱进    107

6.4.2 减少Loader 的执行 107

6.4.3 确保插件的精简和可靠 108

6.4.4 合理配置resolve 参数   109

6.4.5 使用DllPlugin    110

6.4.6 将单进程转化为多进程 113

6.4.7 压缩打包结果的体积   114

6.5 本章小结 117


第7 章 渲染优化 118

7.1 页面渲染性能  118

7.1.1 流畅的使用体验  118

7.1.2 渲染过程   119

7.2 JavaScript 执行优化  120

7.2.1 实现动画效果    120

7.2.2 恰当使用Web Worker   122

7.2.3 事件节流和事件防抖   124

7.2.4 恰当的JavaScript 优化 126

7.3 计算样式优化  128

7.3.1 减少要计算样式的元素数量  128

7.3.2 降低选择器的复杂性   129

7.3.3 使用BEM 规范  129

7.4 页面布局与重绘的优化  131

7.4.1 触发页面布局与重绘的操作  131

7.4.2 避免对样式的频繁改动 131

7.4.3 通过工具对绘制进行评估   133

7.4.4 降低绘制复杂度  136

7.5 合成处理   137

7.5.1 新增图层   137

7.5.2 仅与合成相关的动画属性   137

7.6 本章小结   138


第8 章 服务器端渲染  139

8.1 页面渲染   139

8.1.1 页面渲染的发展  139

8.1.2 多层次优化方案  141

8.2 Vue 中的服务器端渲染  142

8.2.1 Vue 的SSR 基本流程   142

8.2.2 Vue 的SSR 项目实例   143

8.3 React 中的服务器端渲染    147

8.3.1 项目搭建   147

8.3.2 同构   149

8.3.3 服务器端渲染的路由设置   150

8.3.4 结合Redux 进行状态管理   152

8.3.5 通过中间层获取数据   158

8.3.6 处理样式   160

8.3.7 搜索引擎优化相关技巧 162

8.4 本章小结   165


第9 章 数据存储   166

9.1 数据存储概览  166

9.1.1 数据存储分类    166

9.1.2 Cookie  168

9.1.3 Local Storage 和Session Storage  169

9.1.4 Web SQL   170

9.1.5 IndexedDB  171

9.2 通过Chrome 开发者工具调试本地存储  173

9.2.1 调试Cookie  173

9.2.2 调试Local Storage 和Session Storage 174

9.2.3 调试IndexedDB  175

9.2.4 调试Web SQL  176

9.3 IndexedDB 实践建议  177

9.3.1 注意平台兼容性  178

9.3.2 完善错误处理    178

9.3.3 注意修改、删除和过期 179

9.3.4 存储性能   180

9.4 Cache Storage  180

9.4.1 兼容与数据类型  181

9.4.2 创建缓存并存储数据   181

9.4.3 删除缓存   183

9.4.4 检索与查询 183

9.5 本章小结   185


第10 章 缓存技术   186

10.1 HTTP 缓存   186

10.1.1 强制缓存. 186

10.1.2 协商缓存. 188

10.1.3 缓存决策. 190

10.1.4 缓存设置注意事项 193

XII∣Web 前端性能优化

10.2 Service Worker 缓存    194

10.2.1 Service Worker 概览   194

10.2.2 生命周期. 195

10.2.3 本地开发注意事项 199

10.2.4 高性能加载  200

10.3 Push 缓存  ... 202

10.3.1 最后一道缓存  202

10.3.2 Push 缓存与预加载   203

10.4 CDN 缓存  ... 205

10.4.1 CDN 概述  205

10.4.2 应用场景. 208

10.4.3 优化实践. 209

10.5 本章小结   210


第3 篇 前端性能检测实践

第11 章 性能检测   212

11.1 性能检测概述   212

11.1.1 如何进行性能检测 213

11.1.2 常见的检测工具    214

11.2 Lighthouse  221

11.2.1 使用方式  221

11.2.2 性能状况  223

11.2.3 可访问性  231

11.2.4 最佳实践  232

11.2.5 搜索引擎优化  233

11.3 Performance 面板的使用  234

11.3.1 使用方式  234

11.3.2 面板信息  235

11.4 本章小结   239


猜您喜欢

读书导航