页面渲染,其实就是各种资源加载,是一个串行的链路。HTML 加载 -> 资源加载 -> 组件初始化 -> 接口请求 -> 组件更新。性能优化是一个系统性、长期的“移山”过程,不宜过急,也不宜给阶段性目标定的“口嗨”的过高。
HTML
HTML优化主要是为了减少主文档耗时(HTML获取时间)这个情况,即常见刷新后页面白屏时间。常见手段:
- 将HTML分发到CDN上:CDN可以根据网络流量和各个节点的连接、负载情况以及到用户的距离和响应时间等综合信息,将用户的请求重新导向流向用户最近的服务节点上,从而加快资源的加载速度;
- 精简HTML的尺寸:压缩HTML;
- 合理利用缓存;
- 代码拆分,预加载处理等;
资源加载
资源加载一般都是整个页面加载耗时的大头,主要优化手段:能靠后就靠后、能一起就一起、按需加载,并且,请求尽可能并发处理。
- 合理利用缓存;
- DNS预解析;
- 按需加载;
- 并行处理等
图片部分
- 图片压缩;
- 大图切分,并行加载;
- 占位图/渐进式加载;
- 图片预加载;
接口请求
能提早请求的,就提早请求。
渲染优化
渲染优化主要是考虑用户体验和用户反馈上。在一定程度上,所有的优化手段总结来说就是用户感知要流畅,操作反馈要效率,视觉效果要层次感分明。
- 页面loading+等待提示;
- 骨架屏;
- 业务操作提示;
- 错误反馈说明等;