目录
网络指标
一个请求的时间消耗
页面加载
常见性能指标
网络优化策略
缓存
压缩
请求合并
离线包
预加载(前端大流量数据)
网络指标
一个请求的时间消耗
一个请求的发生到返回回来;有3部分时间
1.Scheduling(排队,资源调度)
通常情况浏览器允许一个域名同时发6个请求
2.Connection Start 连接建立的时间
Stalled:闲置时间,程序在准备资源
chrome://net-internals/#dns可以看到能清除浏览器缓存的dns
DNS Lookup:DNS查询时间(DNS很慢就是运营商出问题了)
Initial connection:TCP建立连接3次握手
SSL
3.Request/Response:收发请求时间
Request sent :发过去时间
Waiting(TTFB):等待第一帧的时间,等待时间
Content Download :下载,返回值收到
页面加载
98个requests
多路复用:2.Connection Start 连接建立的时间;这个时间就会被省掉
常见性能指标
- 是否显示?
- 首次绘制时间(FP)、首次内容绘制(FCP)(可以监控html内容的字节数,打印出关键元素加载完的时间,如第一个图)
- 关键元素是否显示?
- 首次有效绘制(FMP)、主角元素计时
- 是否可用?
- 可交互时间(TTI)(用户可以操作了,输入框focus,native监听弹出键盘,监听cpu是否闲置)
- 是否卡顿?
- CPU消耗、输入延迟等(有API可以拿到CPU消耗)
网络优化策略
缓存类
- 本地缓存
- 离线包
- 预加载
减小流量
- 压缩
- 请求合并
缓存
- http缓存
- 移动端缓存(native)安卓工程师,在你的app上给你开个空间做缓存
- 服务端缓存(redis【缓存工具】、ssr【服务端渲染】结果缓存起来等)
压缩
- JS压缩、CSS压缩、HTML压缩
- uglifyjs/xxx minify(常见插件xxx-css,html,js)
- GZIP
- express/nginx/caddy(web服务器)
- 图片合并
- 雪碧图
请求合并
(优先做)服务端渲染->请求合并
离线包
在打开APP期间将资源推送到APP的缓存中(连WIFI时候可用)
离线包分发服务
native工程师和前端工程师一起开发
预加载(前端大流量数据)
- APP预加载完整容器(Webview)
- H5应用预加载下一个页面的数据