Skip to main content

如何让页面加载更快

请求优化

主要有3个方向

减少 HTTP 请求的资源

  • 静态资源文件进行304缓存
  • 启用文本压缩 gzip
  • 压缩图片的大小(webp 或 avif 的压缩效果优于 png 或 jpeg)

代码优化

  • 延迟或异步加载非必要的 CSS 和 JS 文件,避免阻塞页面渲染
  • 减少冗余代码,模块化
  • 图片懒加载

网络优化

  • 使用 CDN 加速静态资源的获取

重绘和回流

  • 重绘 repaint:样式改变
  • 回流 reflow:布局改变

回流必定会发生重绘,而重绘不一定会引发回流。

减少回流是为了提高页面性能的重要策略之一,可以通过以下方式

CSS优化

  • 使用 transform 代替 toptransform 属性可以触发硬件加速,而不会引发回流
  • 使用 will-change,告诉浏览器哪些元素将要发生变化,以便浏览器可以优化性能
  • 使用 visibility:hidden 代替 display:none,因为前者只触发重绘,而后者触发回流
  • 在 DOM Tree 末端修改样式
  • 控制动画速度,使用 requestAnimationFrame 来调度动画
  • 使用 CSS3 动画和过渡,其通常会触发硬件加速,提供更流畅的动画效果

JS优化

  • 对复杂动画使用绝对定位,使其脱离文档流,减少回流的发生
  • 缓存变量,如果需要多次访问某个 DOM 元素或计算值,将这些值缓存在变量中,以避免重复查询和计算

参考文章

https://pagespeed.web.dev/