万本电子书0元读

万本电子书0元读

顶部广告

前端性能揭秘电子书

本书虽名为前端性能揭秘,但涉及领域远远不止前端。系统性从性能的度量、分析、优化、防腐,抽丝剥茧般地娓娓道来—— 1.前端老鸟也不甚了了的前端性能优化硬核知识。 2.性能是前端技术挑战与工程师追求的极限。 3.涉及底层网络到上层框架值得长期投众课题。 4.三位一体思路:性能度量 工具分析 优化解决。 5.从用户体验角度理解浏览器处理页面生命流程。 6.剖析数据收集分析、各项性能指标定义及优化。

售       价:¥

纸质售价:¥75.00购买纸书

52人正在读 | 0人评论 6.7

作       者:佘锦鑫(当轩)

出  版  社:电子工业出版社

出版时间:2022-09-01

字       数:15.9万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书主要介绍用于指导前端性能优化工作的通用优化方法,从网络、浏览器、构建工具、跨端技术和CDN 等方面介绍不同技术、系统对性能的影响,同时帮助读者了解如何有效优化性能。本书从性能的度量、分析和实验这三个方面始介绍。首先介绍性能优化的一些通用方法,然后将性能作为一个切面帮助读者了解与前端技术栈和性能有关的知识。从这个切面观察,这些系统的工作原理等知识被赋予了另外一层意义,通过这种联系把工作原理真正运用到工作中,在性能优化方面发挥重要作用。本书面向的读者为具有一定经验的 Web 发工程师,以及对前端发或 Web 发有一定了解的发人员。同时,假定读者能够行简单的网页发,并且具备相关的基础知识。<br/>【推荐语】<br/>本书虽名为前端性能揭秘,但涉及领域远远不止前端。系统性从性能的度量、分析、优化、防腐,抽丝剥茧般地娓娓道来—— 1.前端老鸟也不甚了了的前端性能优化硬核知识。 2.性能是前端技术挑战与工程师追求的极限。 3.涉及底层网络到上层框架值得长期投众课题。 4.三位一体思路:性能度量 工具分析 优化解决。 5.从用户体验角度理解浏览器处理页面生命流程。 6.剖析数据收集分析、各项性能指标定义及优化。 本书既有大量理论基础,也有扎实实战佐证,值得一读。<br/>【作者】<br/>佘锦鑫,花名当轩。毕业于江南大学理学院,阿里巴巴前前端技术专家,曾负责阿里巴巴国际站性能优化,讲师、源爱好者。现就职于网易云音乐,对Web性能、跨端、可视化搭建等领域有较深的理解。<br/>
目录展开

内容简介

献词

推荐序

前言

第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 均值、分位数和秒开率

均值

分位数

秒开率

如何选择合适的统计指标

2.4 度量首屏

FP

FCP

FMP

如何度量FMP

选定并度量首屏

2.5 度量流畅度

度量流畅度的指标

可视化工具

用户端度量

2.6 Core Web Vitals

LCP

FID

CLS

2.7 小结

第3章 分析

3.1 分析方法

确定目标

收集数据

清洗数据

统计值分析

时序分析

维度分析

相关性分析

3.2 常用的过程指标

TTFB

DOMReady和Load

3.3 Performance API详解

Navigation Timing API

Peformance Entry API

Resource Timing

Navigation Timing Level 2

Paint Timing

User Timing

3.4 分阶段性能分析

常用的指标

其他值得分析的指标

3.5 小结

第4章 实验

4.1 优化不是照搬军规

时代在发展

优化的木桶效应明显

用户环境差异大

性能实验

4.2 用实验验证优化

混沌问题

设计实验

分桶

上报和分析数据

A/B Test背后的数学

结论不重要,重要的是方法

4.3 用实验改进优化

建立模型

实验修正

4.4 小结

第5章 工具

5.1 DevTools

Network面板

Performance面板

5.2 WebPageTest

发起测试

报告

Waterfall视图

5.3 小结

第3篇 网络协议与性能

第6章 TTFB为什么这么长

6.1 TTFB的合理值

精确定义

RTT

RTT一般需要多久

TTFB的构成

实验环境验证

6.2 如何优化TTFB

减少请求的传输量

减少服务器端的处理时间

减少RTT

TTFB的值越小越好吗

6.3 小结

第7章 建立连接为什么这么慢

7.1 建立连接应该耗时多久

TCP协议

建立连接需要多少个RTT

抓包验证

7.2 如何优化建立连接的耗时

减少物理距离

preconnect

复用连接

域名收拢

TCP Fast Open

QUIC和HTTP/3

7.3 小结

第8章 Fetch之前浏览器在干什么

8.1 重定向

HTML重定向

有哪些重定向

8.2 浏览器打开耗时

初始化标签页的时间

unload的耗时

8.3 如何优化beforeFetch耗时

重定向逻辑前置

合并重定向

避免使用短链

使用beforeFetch度量和分析

8.4 小结

第9章 HTTPS协议比HTTP协议更慢吗

9.1 HTTPS协议为什么安全

对称加密和非对称加密

SSL/TLS的实现

SSL/TLS握手

TLS False Start

TLS 1.3

9.2 HTTPS协议如何吊销证书

CRL

OCSP

OCSP Stapling

浏览器支持的情况

证书类型

证书验证机制对性能的影响

9.3 HTTPS协议更慢吗

确保证书链完整

启用TLS 1.3

不滥用EV证书

开启OSCP Stapling

9.4 小结

第10章 HTTP/2、HTTP/3和性能

10.1 HTTP/2和性能

连接复用为什么不生效

头部压缩对我们有什么影响

为什么没有广泛使用Server Push

10.2 为什么还需要HTTP/3

HTTP/2存在什么问题

HTTP/3如何解决问题

10.3 小结

第11章 压缩和缓存

11.1 传输速度和压缩速度如何兼得

Content-Encoding

gzip压缩和br压缩

实时压缩

离线压缩

如何优化传输性能

11.2 HTTP缓存什么时候会失效

缓存不仅仅是浏览器的事情

缓存Header

11.3 小结

第4篇 浏览器与性能

第12章 浏览器和性能

12.1 第一次渲染时都发生了什么

最小的渲染路径

尽快返回HTML

减少资源的阻塞

12.2 为什么DOM操作很慢

重排

重绘

访问DOM属性

如何优化DOM操作

12.3 小结

第13章 异步任务和性能

13.1 事件循环机制

为什么要有事件循环

多线程阻塞模型

事件循环

13.2 宏任务和微任务

13.3 Promise的polyfill性能

如何正确实现Promise

13.4 requestAnimationFrame

13.5 小结

第14章 内存为什么会影响性能

14.1 内存

内存管理

14.2 内存泄漏

内存泄漏和性能

常见的导致内存泄漏的原因

内存泄漏问题的诊断工具

14.3 小结

第15章 使用ServiceWorker改善性能

15.1 ServiceWorker概述

AppCache

ServiceWorker

ServiceWorker能做什么

15.2 使用ServiceWorker进行缓存

Cache API

IndexDB

控制缓存的Cache Key

更加灵活的缓存更新策略

15.3 API提前加载

15.4 ServiceWorker冷启动

开启Navigation Preload

消费Navigation Preload

15.5 小结

第16章 字体对性能的影响

16.1 字体导致的布局偏移

如何定位布局偏移

16.2 如何避免字体带来的布局偏移

如何尽快加载字体

字体文件的格式

字体的加载

预加载字体

裁剪字体的大小

16.3 小结

第5篇 前端工程与性能

第17章 构建工具和性能

17.1 为什么需要打包

CommonJS

AMD

CMD

异步模块加载器

依赖加载优化

模块打包器

ES Module

17.2 构建工具可以做什么

构建工具和构建优化

为什么要优化打包体积

Bundle分析

Tree Shaking

Scope Hoisting

Code Splitting

代码压缩

Vite和Bundleless

17.3 小结

第18章 服务器端渲染和性能

18.1 SSR和同构

18.2 SSR的性能优化

缓存

数据预取

按需渲染

流式渲染

18.3 小结

第6篇 跨端技术与CDN

第19章 WebView和性能

19.1 WebView和Native的区别

LayoutInflater

加载XML的具体过程

Measure

Layout

Paint

Surface

SurfaceFlinger

差异

19.2 WebView的通信成本

JavaScript调用Native

Native调用JavaScript

双向通信

通信对性能的影响

减少通信数据量

避免频繁通信

19.3 React Native的懒加载有何不同

Web实现

基于滚动容器的懒加载

基于位置获取的懒加载

虚拟列表

19.4 React Native如何减小打包体积

Metro

度量

分析

手动Tree Shaking

利用Babel插件进行优化

体积和性能的关系

19.5 API并行请求

发起请求

请求拦截

一致性检验

命中率分析

19.6 小结

第20章 CDN和性能

20.1 什么是CDN

解析

边缘节点

回源

缓存策略

20.2 如何提升缓存命中率

如何在端侧统计缓存命中的情况

减少缓存分裂

缓存忽略动态参数

归一化Vary Header

长效缓存

20.3 动态加速

海外加速

连接复用

客户端连接复用

HTTPS优化

动静分离

压缩

什么场景适合使用动态加速

20.4 自动polyfill

什么是polyfill

Polyfill.io

实现原理

20.5 边缘计算和性能

CDN的可编程功能

Hello World

自定义Cache Key

前置重定向

流式渲染

20.6 小结

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部