|
|
前端从环境搭建, 打包工具配置, 框架选型, 业务编码, 一直到发布上线后的用户数据监控整个生产链上涉及到的方面很多, 为了提高开发体验和用户体验, 前端可以进行很方面的优化, 本结前端优化特指为了提高前端上线后的用户体验而进行页面性能优化这块, 就是让用户等的时间短,尽快的可以进行页面交互.用公式记录一下:/ K& j% p4 S1 T
优化 = 性能优化 + ...; U' r& C% y% d0 E3 t6 S
性能优化 = 用户体验 + ... 4 @8 w' V/ ~" D, |2 \" Z H
性能度量
$ f- H. t# T% W; k9 V有人做了下面一个表格; U+ P/ e! y/ f7 G9 T; S3 q
用户体验描述
0 f9 ]# T+ M: h |( ?3 Z% f2 N6 S+ c6 z为了更好的用户体验, 我们从网页加载和渲染两个维度进行优化, 公式:
3 c+ s/ m7 \2 t' x7 r, H1 N# T用户体验 = 加载性能 + 渲染性能 + ...
5 |/ U, X9 t \9 o性能监控5 F( K) ~3 L9 _, X' B/ F9 t( X
性能监控是性能优化的第一步,至关重要,因为只有性能监控才能找到性能瓶颈,然后会对性的进行优化.
+ Q3 Y; [) _+ |3 P1 z; _* g监控工具: Lighthouse
5 M, H1 W) f; L c! W& gLighthouse是一个Google开源的自动化工具,主要用于改进网络应用(移动端)的质量。目前测试项包括页面性能、PWA、可访问性(无障碍)、最佳实践、SEO。Lighthouse会对各个测试项的结果打分,并给出优化建议,这些打分标准和优化建议可以视为Google的网页最佳实践。6 M, F2 }. y* N- `. Y
Lighthouse 三种使用方法:
8 K8 w) x/ F4 M8 H: }1. Chrome60及以上的开发者工具的audits面板还不是Lighthouse。, ]: R( `6 y& @$ A( ^
2. Chrome拓展程序
5 D7 s9 W% _) Z4 q t& N3. 命令行工具 npm install -g lighthouse or yarn global add lighthouse
1 `; }3 ]9 k# s/ d% b& C3 ?Lighthouse 原理:
3 P# P) [3 j! Q, d% i关于前端性能指标,W3C 定义了强大的Performance API,其中又包括了 High Resolution Time 、 Frame Timing 、 Navigation Timing 、 Performance Timeline 、Resource Timing 、 User Timing 等诸多具体标准. User Timing 、Navigation Timing 以及 Resource Timing。截至到 2018 年中旬,各大主流浏览器均已完成了基础实现. 而 Lighthouse 主要使用设备Chrome浏览器新的API PerformanceObserver, PerformanceEntry, 以及 DOMHighResTimeStamp 等.' j: G( X7 q) ?- y2 N c$ A
8 c, o, |1 ^9 A
性能优化 v0 S4 E4 W# a4 j2 C
分析监控数据,就可以针对性地对网页进行优化, 下面是具有普适性的参考优化点, 在平时的开发中应该多多注意
& I. j- t2 o1 c' ~" x加载优化3 y. q6 m) Z, P' [
网页资源加载即客户端展示的所有数据加载, 包括 静态资源 及 动态数据* Z% T( x+ ]9 L
1. 静态资源3 c' O$ w j' C9 E: U( c' z
a) Js css img等合并压缩和雪碧图
- e" g7 ?5 K2 F" W+ {b) cdn内容分发
: g% X1 F, Q( L8 k5 V) g8 [% L* Tc) 各种缓存(dns缓存,ip缓存, 服务器缓存, 客户端缓存)
; x. k% D! W' t# t% V7 b; @d) 内容分片2 c4 _! R* H. r: L; c% `: x p# [$ @7 I: }, T
e) 协议(http2)% z( ]: V9 V1 L( D+ d2 \" g
2. 业务数据
( O7 O$ }" q$ Q, s. Q& W/ Ua) spa首屏直出(ssr或骨架屏或预渲染)
1 v2 Z. q' K2 e" }/ N7 yb) 接口合并
7 Q7 i( N1 l$ A/ T& m渲染优化6 D7 Y. ?4 m; @3 N, a
网页渲染
+ V5 [4 W; y. Y0 q, R! n1. 防止阻塞渲染
- h; d( ~7 ^3 l; s* q8 ~# Y2. 减少重绘和回流
* E9 q3 k& | |7 j3. 提高代码质量: x# q0 A7 T7 ?# @- M( H6 W& z
& D7 }6 ~# G5 s# i h来源:https://www.toutiao.com/a6692409042528109064/. R7 J6 y( R) j( N
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|