性能优化学习路径

287 阅读2分钟

性能优化学习路径

简单介绍性能优化的路径,并给出链接,具体内容根据篇幅不过多展示

指标

真实指标

实验室指标

评估工具

  • Chrome DevTools
  • LightHouse
  • PageSpeed Insights
  • WebPageTest

优化方案

压缩

  • 代码压缩 UglifyJS
  • 文本压缩(gzip,Brotli,ZopFli)
  • Tree-shaking
  • Code-splitting(代码分离)

    常用的代码分离方法有三种:

    • 入口起点:使用 entry 配置手动地分离代码。
    • 防止重复:使用 Entry dependencies 或者 SplitChunksPlugin 去重和分离 chunk。
    • 动态导入:通过模块的内联函数调用来分离代码。

图片优化

  • 小图优化(css sprite、iconfont、dataURl、svg)
  • 压缩
  • 图片格式
  • 响应式

加载策略

  • 懒加载
  • DNS预解析、预加载、预渲染
  • 离线化(serviceWorker、AppCache、离线包)
  • HTTP缓存
  • 数据缓存(localStorage,sessionStorage)
  • 资源加载(顺序、位置、异步)async,defer
  • 请求合并
  • HTTP2
  • CDN
  • 服务端渲染

执行渲染

  • CSS代码优化(选择器、启用GPU、避免表达式)
  • 使用requestAnimationFrame实现视觉变化 动画
  • 降低复杂度或使用 Web Worker (service worker 基于web worker,浏览器与服务器间的代理服务器 异步)
  • 避免大型、复杂的布局和布局抖动(CLS)
  • 输入程序防抖
  • 简化绘制复杂度、减少绘制区域

感官体验优化

  • 骨架屏
  • Snapshot
  • Loading