为你推荐
前折页
内容简介
前言
第1篇 前端性能优化概述
第1章 什么是性能优化
1.1 性能的起因
1.2 性能的影响
1.2.1 用户的留存
1.2.2 网站的转化率
1.2.3 体验与传播
1.3 性能评估模型
1.3.1 响应
1.3.2 动画
1.3.3 空闲
1.3.4 加载
1.4 性能优化的步骤
1.4.1 性能测量
1.4.2 生命周期
1.4.3 优化方案
1.5 本章小结
第2章 前端页面的生命周期
2.1 一道前端面试题
2.2 网络请求线程开启
2.2.1 进程与线程
2.2.2 单进程浏览器
2.2.3 多进程浏览器
2.3 建立HTTP请求
2.3.1 DNS解析
2.3.2 网络模型
2.3.3 TCP连接
2.4 前后端的交互
2.4.1 反向代理服务器
2.4.2 后端处理流程
2.4.3 HTTP相关协议特性
2.4.4 浏览器缓存
2.5 关键渲染路径
2.5.1 构建对象模型
2.5.2 渲染绘制
2.6 本章小结
第2篇 典型模块的性能优化
第3章 图像优化
3.1 图像基础
3.1.1 图像是否必需
3.1.2 矢量图和位图
3.1.3 分辨率
3.1.4 压缩的有损和无损
3.2 图像格式
3.2.1 JPEG
3.2.2 GIF
3.2.3 PNG
3.2.4 WebP
3.2.5 SVG
3.2.6 Base64
3.2.7 格式选择建议
3.3 使用建议
3.3.1 CSS Sprite
3.3.2 Web字体
3.3.3 注意display:none的使用
3.4 本章小结
第4章 加载优化
4.1 图像延迟加载
4.1.1 什么是延迟加载
4.1.2 实现图片的延迟加载:传统方式
4.1.3 实现图片的延迟加载:Intersection Observer方式
4.1.4 实现图片的延迟加载:CSS类名方式
4.1.5 原生的延迟加载支持
4.2 视频加载
4.2.1 不需要自动播放
4.2.2 视频代替GIF动画
4.3 加载注意事项
4.3.1 首屏加载
4.3.2 资源占位
4.3.3 内容加载失败
4.3.4 图像解码延迟
4.3.5 JavaScript是否可用
4.4 资源优先级
4.4.1 优先级
4.4.2 预加载
4.4.3 预连接
4.4.4 预提取
4.5 本章小结
第5章 书写高性能的代码
5.1 数据存取
5.1.1 数据存取方式
5.1.2 作用域和作用域链
5.1.3 实战经验
5.2 流程控制
5.2.1 条件判断
5.2.2 循环语句
5.2.3 递归
5.3 字符串处理
5.3.1 字符串拼接
5.3.2 正则表达式
5.3.3 优化正则表达式
5.4 快速响应
5.4.1 浏览器的限制
5.4.2 异步队列
5.5 其他建议
5.5.1 避免多重求值
5.5.2 使用位操作
5.5.3 使用原生方法
5.6 本章小结
第6章 构建优化
6.1 压缩与合并
6.1.1 HTML压缩
6.1.2 CSS压缩
6.1.3 JavaScript压缩与混淆
6.1.4 文件合并
6.2 使用fis3进行前端构建
6.2.1 构建流程
6.2.2 构建实操
6.3 使用webpack进行前端构建
6.3.1 模块打包工具
6.3.2 安装建议
6.3.3 配置文件
6.4 webpack的优化性能
6.4.1 尽量与时俱进
6.4.2 减少Loader的执行
6.4.3 确保插件的精简和可靠
6.4.4 合理配置resolve参数
6.4.5 使用DllPlugin
6.4.6 将单进程转化为多进程
6.4.7 压缩打包结果的体积
6.5 本章小结
第7章 渲染优化
7.1 页面渲染性能
7.1.1 流畅的使用体验
7.1.2 渲染过程
7.2 JavaScript执行优化
7.2.1 实现动画效果
7.2.2 恰当使用Web Worker
7.2.3 事件节流和事件防抖
7.2.4 恰当的JavaScript优化
7.3 计算样式优化
7.3.1 减少要计算样式的元素数量
7.3.2 降低选择器的复杂性
7.3.3 使用BEM规范
7.4 页面布局与重绘的优化
7.4.1 触发页面布局与重绘的操作
7.4.2 避免对样式的频繁改动
7.4.3 通过工具对绘制进行评估
7.4.4 降低绘制复杂度
7.5 合成处理
7.5.1 新增图层
7.5.2 仅与合成相关的动画属性
7.6 本章小结
第8章 服务器端渲染
8.1 页面渲染
8.1.1 页面渲染的发展
8.1.2 多层次优化方案
8.2 Vue中的服务器端渲染
8.2.1 Vue的SSR基本流程
8.2.2 Vue的SSR项目实例
8.3 React中的服务器端渲染
8.3.1 项目搭建
8.3.2 同构
8.3.3 服务器端渲染的路由设置
8.3.4 结合Redux进行状态管理
8.3.5 通过中间层获取数据
8.3.6 处理样式
8.3.7 搜索引擎优化相关技巧
8.4 本章小结
第9章 数据存储
9.1 数据存储概览
9.1.1 数据存储分类
9.1.2 Cookie
9.1.3 Local Storage和Session Storage
9.1.4 Web SQL
9.1.5 IndexedDB
9.2 通过Chrome开发者工具调试本地存储
9.2.1 调试Cookie
9.2.2 调试Local Storage和Session Storage
9.2.3 调试IndexedDB
9.2.4 调试Web SQL
9.3 IndexedDB实践建议
9.3.1 注意平台兼容性
9.3.2 完善错误处理
9.3.3 注意修改、删除和过期
9.3.4 存储性能
9.4 Cache Storage
9.4.1 兼容与数据类型
9.4.2 创建缓存并存储数据
9.4.3 删除缓存
9.4.4 检索与查询
9.5 本章小结
第10章 缓存技术
10.1 HTTP缓存
10.1.1 强制缓存
10.1.2 协商缓存
10.1.3 缓存决策
10.1.4 缓存设置注意事项
10.2 Service Worker缓存
10.2.1 Service Worker概览
10.2.2 生命周期
10.2.3 本地开发注意事项
10.2.4 高性能加载
10.3 Push缓存
10.3.1 最后一道缓存
10.3.2 Push缓存与预加载
10.4 CDN缓存
10.4.1 CDN概述
10.4.2 应用场景
10.4.3 优化实践
10.5 本章小结
第3篇 前端性能检测实践
第11章 性能检测
11.1 性能检测概述
11.1.1 如何进行性能检测
11.1.2 常见的检测工具
11.2 Lighthouse
11.2.1 使用方式
11.2.2 性能状况
11.2.3 可访问性
11.2.4 最佳实践
11.2.5 搜索引擎优化
11.3 Performance面板的使用
11.3.1 使用方式
11.3.2 面板信息
11.4 本章小结
后折页
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜