视频场景的页面性能优化

目录

1. 页面性能

1.1. 指标确定

1.2 优化方向:

2. 优化方案

2.1. 通用场景优化方案

 2.1.1. 主包大小裁剪

2.1.2. 分包策略调整

2.1.3. 核心接口请求提前

2.2. 视频场景优化方案

2.2.1. 视频首帧分片的请求策略 

2.3. 直出化页面,提升首屏体验

2.3.1 页面直出方案

2.3.1 减少页面重排

2.3.2 缓存

2.4 视觉感官细节优化内容

2.4.1  延迟非首屏组件渲染

2.4.2  header 占位优化


1. 页面性能

1.1. 指标确定

本次优化的核心目标为提升用户从打开页面到播放视频的速度此处测量对象有页面内容加载耗时、页面加载到开始播放视频前各个环节的耗时、页面加载到视频首帧耗时。

此外,结合 Google 发布的侧重用户体验为准的指标 Web Vitals ,确定两个用于描述页面渲染的指标:

  • LCP,Largest Contentful Paint,最大内容渲染,即页面整体内容渲染完毕的耗时,用于衡量加载耗时,建议值在 2.5 秒以下
  • CLS,Cumulative Layout Shift,累积布局偏移,即页面元素移动的位置累加量,用于衡量视觉稳定性,越低越好,建议值在0.1 以下

1.2 优化方向:

  1. 页面提前渲染播放器和拉流,来提升用户看到视频的速度;
  2. 稳定页面元素的展示,减少页面元素闪动的情况,提升页面的视觉观感体验

2. 优化方案

2.1. 通用场景优化方案

 2.1.1. 主包大小裁剪

 在”主包下载“ 流程中,优化手段为减少首包的大小,合理调整分包策略。可通过 Chrome DevTools Network 进行可视化分析。

也可使用 webpack-bundle-analyzer 进行可视化分析,得到优化点。

优化策略:分析主要的性能瓶颈,可按业务需求,通过对部分资源进行按需加载而不是全部加载。只对相关依赖的模块进行按需加载即可。

2.1.2. 分包策略调整

把播放器渲染、拉流和页面其他元素渲染分离,优先渲染播放器,来达到更快的视频首帧速度。

2.1.3. 核心接口请求提前

前的核心请求流程在主包下载完成解析后才开始执行,整体页面开始执行有效渲染操作的时机过后。此处优化手段为利用浏览器的并行请求机制,提前执行业务接口请求,来减少此部分耗时。


2.2. 视频场景优化方案

2.2.1. 视频首帧分片的请求策略 

当前为了用户观看体验,优先从视频最高分辨率开始播放,对应也带来较久的首帧分片下载耗时,结合体验,可以考虑固定从 720p 开始播放(现分辨率级别有 480p、720p、1080p),兼顾体验和性能。

2.3. 直出化页面,提升首屏体验

页面直出化能带来更加稳定的首屏体验,以及结合一些接口在服务端去请求和缓存,可以提升页面加载性能。

2.3.1 页面直出方案

***

2.3.1 减少页面重排

用SSR,服务器渲染头部组件,chat组件和播放封面。也通过骨架屏的方式,提供更好的体验。
骨架屏:Element - The world's most popular Vue UI framework

2.3.2 缓存

1. 可以缓存业务的静态接口(数据变更的概率较低的接口)

2. 对直出 HTML 结果进行缓存,在用户二次请求时可以极速响应

2.4 视觉感官细节优化内容

2.4.1  延迟非首屏组件渲染

顾名思义,可以等视频渲染完毕后再加载部分非主需的组件的渲染。

2.4.2  header 占位优化

页面渲染过程中 header 区域总会有一次闪动,让页面视觉表达不够稳定,通过优化首屏框架,给 header 区域增加占位,来减少 header 区域的闪动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值