https://www.bilibili.com/video/BV1Xy4y1f7gv/?p=2&spm_id_from=pageDriver&vd_source=3d5529582ad68dbbeb463ce1e1db2ecd
指标设定
以用户体验为中心
页面加载速度
用户交互
视觉稳定性(CLS)
可以度量:分位值,秒开率
白屏时间:300ms
首页时间:1s,2.5s
首屏时间
首屏时间 = 白屏时间 + 数据接口响应、图片加载时间等
白屏时间 = dns + tcp + 服务器响应等
页面加载过程
url -> 页面渲染 全过程
url -dns-> ip -http-> 数据响应 -渲染-> 页面
优化策略
缓存
强缓存:通过响应头 expires 和 cache-control 判断是否命中
协商缓存(httpcode 304):先发请求到服务端,通过 last-modified 和 e-tag 来确认本地缓存有效
dns:dns预获取
http请求
浏览器最多并发数:6个(针对同域名)
域名规划:制定域名优先级,优先请求重要资源
域名散列:多地址随机选取,增加并发连接数。不是越多越好,可能会影响多域名下的资源缓存问题
服务端处理:
http处理
权限校验
数据处理
数据返回
gzip压缩
缓存优化策略
【浏览器】借助 Service Worker 数据接口进行缓存
【浏览器】借助本地存储对数据缓存
【服务器】CDN
资源重定向
服务端 302 重定向
META标签重定向
前端 window.location 重定向
导致DNS重新查询
浏览器处理
解析:原始 html 转成 dom 树 和 cssom 树,用来表示页面结构或css结构的树形数据结构
渲染:渲染主线程根据 dom 树 和 cssom 树,渲染出页面布局结构