4. 性能

最佳实践

扩展模块

性能围绕着使您的网站尽可能快地运行,既包括实际意义上的速度(例如较小的文件大小,更快的加载速度),也包括性能的感知(例如指示进度,尽可能快地将初始内容呈现到可用状态,即使所有内容尚未加载)。

4.1 性能基础

学习目标

  • 了解实际性能和感知性能的概念以及两者之间的区别。
  • 了解关键性能概念
    • 源代码顺序。
    • 关键路径。
    • 延迟。
    • 浏览器如何渲染页面。
  • 了解性能如何影响可持续性 - 良好的性能可以通过减少能源使用和带宽消耗对地球产生积极影响
    • 能源效率
    • 硬件效率(可修复性/利用率)。
    • 需求效率
      • 空间(您在何处执行计算)。
      • 时间(您何时执行计算)。

资源

4.2 改善页面渲染

学习目标

  • 如何减少页面加载时间
    • 使用最佳的媒体格式和压缩。
    • 从静音视频中删除不必要的音频。
    • 使用视频预加载属性来减少预先下载。
    • 考虑使用自适应流。
    • 使用 width 和 height 属性减少媒体加载抖动。
    • 注意字体选择 - 尽可能保持文件大小尽可能小,例如只包含您需要的字形、变体和权重。
  • 如何提高“可用时间”
    • 通过最初只显示重要内容来最小化初始加载。尽快使重要的交互式功能具有交互性。
    • 其他数据和资源可以在用户使用页面时在后台加载。
    • 对图像和其他不需要立即加载的资源使用延迟加载。
  • 如何提高功能的感知性能
    • 使用动画在状态之间进行过渡,而不是让用户等待最终状态。
    • 使用加载微调器和进度条指示进度,这样用户会感觉正在发生一些事情。
    • 明智地使用事件,例如在 keydown 上触发操作,而不是等待 keyup

资源

4.3 性能衡量

学习目标

  • 了解用于衡量性能的关键指标,例如首次内容绘制、速度指数、总阻塞时间、跳出率、唯一用户/页面浏览量。
  • 如何使用常见的性能测量工具
  • 如何使用 Performance Web API 创建您自己的性能测量工具
    • Performance Timeline API。
    • Navigation Timing API。
    • User Timing API。
    • Resource Timing API。

资源

4.4 CSS 和性能

学习目标

  • 了解提高 CSS 性能的技术
    • 仅在需要时加载;使用媒体查询进行优化。
    • 最小化动画,并在 GPU 上强制动画。
    • 最小化重绘。
    • 适当地使用 will-changecontain

资源

4.5 JavaScript 和性能

学习目标

  • 了解提高 JavaScript 性能的技术
    • 减少使用的 JavaScript 数量。
    • 仅在需要时加载 JavaScript,并删除未使用的代码。
    • 适当地使用延迟/异步 JavaScript。
    • 压缩、打包和拆分 JavaScript。

资源

上一页:3. Web API下一页:5. 安全和隐私