Skip to content

前端性能优化方法与实战-拉勾

需要区分 白屏 和 首屏 吗?

网络层性能优化

  • DNS
  • TCP并发-多域名方案/http3
  • HTTP缓存
  • serviceWorker缓存
  • sessionStorage缓存
  • Gzip压缩
  • 拥塞预防
  • 负载均衡
  • 慢启动

布局性能优化 图片加载或接口加载再撑开页面布局的方式,除了效果不好,还会带来重新计算布局的损耗

  • GPU绘图
  • GUI和LCD
  • 解析算法、标记化算法、树构建算法

埋点方法

我们常见的埋点是业务逻辑的埋点,如展开选项,弹出广告等 还有一种埋点是页面元素显示的埋点,如按钮显示时埋点

手动埋点

优点:灵活,精细 缺点:麻烦,容易埋错,后期变动需要维护

自动埋点

优点:简单,统一 缺点:不精细,难定制化

服务端渲染 SSR

当资源文件加载完,页面就渲染好了,首屏页面不需要再异步请求数据,因此直接判断资源加载停止时的时间 js提供的 Performance API 接口

首屏时间 = DOMContentLoaded = domContentLoadedEventEnd - fetchStart

SPA

资源加载完成只是模版资源,再通过js操作dom渲染页面才是首屏出来的时间

  • 方法一 - 框架层面给组件生命周期mounted中埋点,最后一个mounted触发时间即首屏时间
  • 方法二 - MutationObserver 监控DOM元素,当DOM元素变化,标记变化的元素,记录时间点和分数,通过算法和dom权重计算出分数

算法 TODO:

图片和DOM时分开的,有DOM没图检测不到 用js计算图片加载时间

js计算方法 TODO:

总结

手动和自动都要用上,这样的数据采集放到管理系统里分析数据

白屏时间

采集网络请求点

工具使用

平台搭建(埋点)