当面试官问你如何进行性能优化时,你该怎么回答?


当面试官问你如何进行性能优化时,你该怎么回答?

背景

当你这样说的时候:压缩代码、打包代码、雪碧图、cdn、事件代理、
说明你对网站性能优化缺少一个整体的认识

性能优化是什么

从前端的角度,分页面加载时间 和 页面运行效率

从浏览器打开到页面渲染完成,花费了多少时间

主要的过程是:

1
2
3
4
5
浏览器解析 -> 查询缓存 -> dns查询 -> 建立链接 -> 
服务器请求处理 -> 服务器发送响应 -> 客户端收到页面 ->
解析html -> 构建渲染树 -> 开始显示内容(白屏时间)->
首屏加载完成(首屏时间)-> 用户可交互(DOMContentLoaded)->
加载完成(load)

页面加载时间监控

推荐 PerformanceTiming 可以获取页面加载的数据:

1
2
3
4
5
dns解析时间: domainLookEnd - domainLookStart
TCP建立链接时间: connectEnd - connectStart
白屏时间: responsStart - navigationStart
dom渲染完成时间: domContentLoadEnentEnd - navigationStart
页面onload时间: loadEventEnd - navigationStart

服务器部分优化要点

后端可以对缓存、dns查询时间,链接时间,处理请求时间,响应时间等进行优化

前端部分优化要点

前端可以对白屏时间,首屏时间,可交换时间,加载完成时间进行优化