第六届360前端星计划_前端性能优化

主讲人

  • 饶占平
  • 360大前端团队
  • 奇舞团前端工程师

一、RALL模型

使用RALL模型评估性能

  1. RALL模型:以用户为中心的性能模型,每个网络应用都具有与生命周期有关的四个方面,而且这些方面以不同的方式影响着性能。
    第六届360前端星计划_前端性能优化_第1张图片
  2. 延迟与用户反应
    第六届360前端星计划_前端性能优化_第2张图片
  3. 响应:50ms处理事件
  • 目标:在100ms内响应用户输入
  • 指导
    50ms内处理用户输入事件,确保100ms内反馈用户可视的响应。
    对于开销大的任务可分隔任务处理,或放到worker进程中执行,避免影响用户交互。
    处理时间超过50ms的操作,始终给与反馈(进度和活动指示器)
  1. 50ms or 100ms
    第六届360前端星计划_前端性能优化_第3张图片
  2. 动画:10ms 一帧
  • 目标
    10ms或更短的时间内生成一帧
    在这里插入图片描述
    视觉平滑
  • 指导
    1)在动画这样的高压点,尽量不要处理逻辑。提高达到60fps的机会
    2)动画类型:
    滚动。包括甩动,及用户开始滚动,然后放开,页面继续滚动
    视觉动画。包括入口和出口、补间和加载指示器
    拖拽动画通常跟随用户交互,包括地图平移和缩放
  1. 空闲时间最大化
  • 目标:最大化空闲时间以增加页面在100ms内响应用户输入的几率
  • 指导
    利用空闲时间完成推迟的工作
    空闲时间期间用户交互优先级最高
  1. 加载:5s呈现交互内容
  • 目标
    首屏加载连续3G缓慢的中档移动设备5s内呈现可交互内容
    非首屏加载应该在2s内完成
  • 指导
    1)测试用户常用设备和网络连接情况的性能
    2)优化关键渲染路径以解除阻止渲染
    3)启用渐进式渲染和在后台执行一些工作
    4)影响加载性能的因素:网络速度、硬件、解析JavaScript
  1. 关键指标
  • 响应:在100ms内响应用户输入
  • 动画:动画或滚动时,10ms产生一帧
  • 空闲时间:主线程空闲时间最大化
  • 加载:在1000ms内呈现交互内容
  • 以用户为中心

二、工具篇

评估性能的工具

  1. Lighthouse
  2. WebPageTest
  3. Chrome DevTools

三、实战篇

  1. 浏览器渲染流程
  • JavaScript(实现动画、操作DOM等)
  • Style(Render Tree)
  • Layout(盒模型,确切的位置和大小)
  • Paint(栅格化)
  • Composite(渲染层合并)
  1. 浏览器渲染场景
    第六届360前端星计划_前端性能优化_第4张图片

你可能感兴趣的:(第六届360前端星计划)