封面
版权信息
内容简介
献词
推荐序
前言
第1篇 从Vite起步
第1章 从实践开始
1.1 Hello World
现在开始
使用DevTools
第一个优化
1.2 现实开发的例子
设置开发环境
Vite
vite build
进一步优化
引入antd
按需引入
动态import
1.3 小结
第2篇 性能优化方法论
第2章 度量
2.1 科学的方法
从一个客户反馈说起
不度量性能,就无法优化性能
真实的用户端性能
2.2 初识Performance API
performance.now()方法
构建首屏指标
2.3 均值、分位数和秒开率
均值
分位数
秒开率
- APP免费
如何选择合适的统计指标
- APP免费
2.4 度量首屏
- APP免费
FP
- APP免费
FCP
- APP免费
FMP
- APP免费
如何度量FMP
- APP免费
选定并度量首屏
- APP免费
2.5 度量流畅度
- APP免费
度量流畅度的指标
- APP免费
可视化工具
- APP免费
用户端度量
- APP免费
2.6 Core Web Vitals
- APP免费
LCP
- APP免费
FID
- APP免费
CLS
- APP免费
2.7 小结
- APP免费
第3章 分析
- APP免费
3.1 分析方法
- APP免费
确定目标
- APP免费
收集数据
- APP免费
清洗数据
- APP免费
统计值分析
- APP免费
时序分析
- APP免费
维度分析
- APP免费
相关性分析
- APP免费
3.2 常用的过程指标
- APP免费
TTFB
- APP免费
DOMReady和Load
- APP免费
3.3 Performance API详解
- APP免费
Navigation Timing API
- APP免费
Peformance Entry API
- APP免费
Resource Timing
- APP免费
Navigation Timing Level 2
- APP免费
Paint Timing
- APP免费
User Timing
- APP免费
3.4 分阶段性能分析
- APP免费
常用的指标
- APP免费
其他值得分析的指标
- APP免费
3.5 小结
- APP免费
第4章 实验
- APP免费
4.1 优化不是照搬军规
- APP免费
时代在发展
- APP免费
优化的木桶效应明显
- APP免费
用户环境差异大
- APP免费
性能实验
- APP免费
4.2 用实验验证优化
- APP免费
混沌问题
- APP免费
设计实验
- APP免费
分桶
- APP免费
上报和分析数据
- APP免费
A/B Test背后的数学
- APP免费
结论不重要,重要的是方法
- APP免费
4.3 用实验改进优化
- APP免费
建立模型
- APP免费
实验修正
- APP免费
4.4 小结
- APP免费
第5章 工具
- APP免费
5.1 DevTools
- APP免费
Network面板
- APP免费
Performance面板
- APP免费
5.2 WebPageTest
- APP免费
发起测试
- APP免费
报告
- APP免费
Waterfall视图
- APP免费
5.3 小结
- APP免费
第3篇 网络协议与性能
- APP免费
第6章 TTFB为什么这么长
- APP免费
6.1 TTFB的合理值
- APP免费
精确定义
- APP免费
RTT
- APP免费
RTT一般需要多久
- APP免费
TTFB的构成
- APP免费
实验环境验证
- APP免费
6.2 如何优化TTFB
- APP免费
减少请求的传输量
- APP免费
减少服务器端的处理时间
- APP免费
减少RTT
- APP免费
TTFB的值越小越好吗
- APP免费
6.3 小结
- APP免费
第7章 建立连接为什么这么慢
- APP免费
7.1 建立连接应该耗时多久
- APP免费
TCP协议
- APP免费
建立连接需要多少个RTT
- APP免费
抓包验证
- APP免费
7.2 如何优化建立连接的耗时
- APP免费
减少物理距离
- APP免费
preconnect
- APP免费
复用连接
- APP免费
域名收拢
- APP免费
TCP Fast Open
- APP免费
QUIC和HTTP/3
- APP免费
7.3 小结
- APP免费
第8章 Fetch之前浏览器在干什么
- APP免费
8.1 重定向
- APP免费
HTML重定向
- APP免费
有哪些重定向
- APP免费
8.2 浏览器打开耗时
- APP免费
初始化标签页的时间
- APP免费
unload的耗时
- APP免费
8.3 如何优化beforeFetch耗时
- APP免费
重定向逻辑前置
- APP免费
合并重定向
- APP免费
避免使用短链
- APP免费
使用beforeFetch度量和分析
- APP免费
8.4 小结
- APP免费
第9章 HTTPS协议比HTTP协议更慢吗
- APP免费
9.1 HTTPS协议为什么安全
- APP免费
对称加密和非对称加密
- APP免费
SSL/TLS的实现
- APP免费
SSL/TLS握手
- APP免费
TLS False Start
- APP免费
TLS 1.3
- APP免费
9.2 HTTPS协议如何吊销证书
- APP免费
CRL
- APP免费
OCSP
- APP免费
OCSP Stapling
- APP免费
浏览器支持的情况
- APP免费
证书类型
- APP免费
证书验证机制对性能的影响
- APP免费
9.3 HTTPS协议更慢吗
- APP免费
确保证书链完整
- APP免费
启用TLS 1.3
- APP免费
不滥用EV证书
- APP免费
开启OSCP Stapling
- APP免费
9.4 小结
- APP免费
第10章 HTTP/2、HTTP/3和性能
- APP免费
10.1 HTTP/2和性能
- APP免费
连接复用为什么不生效
- APP免费
头部压缩对我们有什么影响
- APP免费
为什么没有广泛使用Server Push
- APP免费
10.2 为什么还需要HTTP/3
- APP免费
HTTP/2存在什么问题
- APP免费
HTTP/3如何解决问题
- APP免费
10.3 小结
- APP免费
第11章 压缩和缓存
- APP免费
11.1 传输速度和压缩速度如何兼得
- APP免费
Content-Encoding
- APP免费
gzip压缩和br压缩
- APP免费
实时压缩
- APP免费
离线压缩
- APP免费
如何优化传输性能
- APP免费
11.2 HTTP缓存什么时候会失效
- APP免费
缓存不仅仅是浏览器的事情
- APP免费
缓存Header
- APP免费
11.3 小结
- APP免费
第4篇 浏览器与性能
- APP免费
第12章 浏览器和性能
- APP免费
12.1 第一次渲染时都发生了什么
- APP免费
最小的渲染路径
- APP免费
尽快返回HTML
- APP免费
减少资源的阻塞
- APP免费
12.2 为什么DOM操作很慢
- APP免费
帧
- APP免费
重排
- APP免费
重绘
- APP免费
访问DOM属性
- APP免费
如何优化DOM操作
- APP免费
12.3 小结
- APP免费
第13章 异步任务和性能
- APP免费
13.1 事件循环机制
- APP免费
为什么要有事件循环
- APP免费
多线程阻塞模型
- APP免费
事件循环
- APP免费
13.2 宏任务和微任务
- APP免费
13.3 Promise的polyfill性能
- APP免费
如何正确实现Promise
- APP免费
13.4 requestAnimationFrame
- APP免费
13.5 小结
- APP免费
第14章 内存为什么会影响性能
- APP免费
14.1 内存
- APP免费
内存管理
- APP免费
14.2 内存泄漏
- APP免费
内存泄漏和性能
- APP免费
常见的导致内存泄漏的原因
- APP免费
内存泄漏问题的诊断工具
- APP免费
14.3 小结
- APP免费
第15章 使用ServiceWorker改善性能
- APP免费
15.1 ServiceWorker概述
- APP免费
AppCache
- APP免费
ServiceWorker
- APP免费
ServiceWorker能做什么
- APP免费
15.2 使用ServiceWorker进行缓存
- APP免费
Cache API
- APP免费
IndexDB
- APP免费
控制缓存的Cache Key
- APP免费
更加灵活的缓存更新策略
- APP免费
15.3 API提前加载
- APP免费
15.4 ServiceWorker冷启动
- APP免费
开启Navigation Preload
- APP免费
消费Navigation Preload
- APP免费
15.5 小结
- APP免费
第16章 字体对性能的影响
- APP免费
16.1 字体导致的布局偏移
- APP免费
如何定位布局偏移
- APP免费
16.2 如何避免字体带来的布局偏移
- APP免费
如何尽快加载字体
- APP免费
字体文件的格式
- APP免费
字体的加载
- APP免费
预加载字体
- APP免费
裁剪字体的大小
- APP免费
16.3 小结
- APP免费
第5篇 前端工程与性能
- APP免费
第17章 构建工具和性能
- APP免费
17.1 为什么需要打包
- APP免费
CommonJS
- APP免费
AMD
- APP免费
CMD
- APP免费
异步模块加载器
- APP免费
依赖加载优化
- APP免费
模块打包器
- APP免费
ES Module
- APP免费
17.2 构建工具可以做什么
- APP免费
构建工具和构建优化
- APP免费
为什么要优化打包体积
- APP免费
Bundle分析
- APP免费
Tree Shaking
- APP免费
Scope Hoisting
- APP免费
Code Splitting
- APP免费
代码压缩
- APP免费
Vite和Bundleless
- APP免费
17.3 小结
- APP免费
第18章 服务器端渲染和性能
- APP免费
18.1 SSR和同构
- APP免费
18.2 SSR的性能优化
- APP免费
缓存
- APP免费
数据预取
- APP免费
按需渲染
- APP免费
流式渲染
- APP免费
18.3 小结
- APP免费
第6篇 跨端技术与CDN
- APP免费
第19章 WebView和性能
- APP免费
19.1 WebView和Native的区别
- APP免费
LayoutInflater
- APP免费
加载XML的具体过程
- APP免费
Measure
- APP免费
Layout
- APP免费
Paint
- APP免费
Surface
- APP免费
SurfaceFlinger
- APP免费
差异
- APP免费
19.2 WebView的通信成本
- APP免费
JavaScript调用Native
- APP免费
Native调用JavaScript
- APP免费
双向通信
- APP免费
通信对性能的影响
- APP免费
减少通信数据量
- APP免费
避免频繁通信
- APP免费
19.3 React Native的懒加载有何不同
- APP免费
Web实现
- APP免费
基于滚动容器的懒加载
- APP免费
基于位置获取的懒加载
- APP免费
虚拟列表
- APP免费
19.4 React Native如何减小打包体积
- APP免费
Metro
- APP免费
度量
- APP免费
分析
- APP免费
手动Tree Shaking
- APP免费
利用Babel插件进行优化
- APP免费
体积和性能的关系
- APP免费
19.5 API并行请求
- APP免费
发起请求
- APP免费
请求拦截
- APP免费
一致性检验
- APP免费
命中率分析
- APP免费
19.6 小结
- APP免费
第20章 CDN和性能
- APP免费
20.1 什么是CDN
- APP免费
解析
- APP免费
边缘节点
- APP免费
回源
- APP免费
缓存策略
- APP免费
20.2 如何提升缓存命中率
- APP免费
如何在端侧统计缓存命中的情况
- APP免费
减少缓存分裂
- APP免费
缓存忽略动态参数
- APP免费
归一化Vary Header
- APP免费
长效缓存
- APP免费
20.3 动态加速
- APP免费
海外加速
- APP免费
连接复用
- APP免费
客户端连接复用
- APP免费
HTTPS优化
- APP免费
动静分离
- APP免费
压缩
- APP免费
什么场景适合使用动态加速
- APP免费
20.4 自动polyfill
- APP免费
什么是polyfill
- APP免费
Polyfill.io
- APP免费
实现原理
- APP免费
20.5 边缘计算和性能
- APP免费
CDN的可编程功能
- APP免费
Hello World
- APP免费
自定义Cache Key
- APP免费
前置重定向
- APP免费
流式渲染
- APP免费
20.6 小结
- APP免费
封底
更新时间:2023-02-28 18:23:23