目录

H5页面中的图片、视频加载缓慢

问题现象

浏览应用内带有图片、视频的内容时,出现加载慢的现象。

背景知识

问题定位

  1. 使用Ark Inspector查看应用布局,该页面布局为Web页面。在右侧搜索框输入content确认该网页地址。

    在浏览器中输入该网页地址,然后打开网络(Ctrl+U),可以看到图片/视频资源地址为"https://xxx"。

  2. 使用DevEco Studio Profiler的ArkWeb分析抓取该图片/视频资源加载过程的Trace,再根据加载流程中的Trace关键字表拆分该图片/视频资源加载过程,可找到其加载过程及耗时。

    以图片举例,具体步骤如下所示(对应图中红点标识):

    首先将Trace关键字表中的对应关键字放入搜索框,例如“发送请求”:H:HttpNetworkTransaction::DoSendRequestComplete| url=https://xxx (改为对应的图片URL)。

    然后在搜索结果中筛选目标,找出任意一次成功复现的节点。

    最后放大该时间轴比例,直至可以清晰显示该线程的运行时长及其具体运行时间点。

    重复以上步骤,依次搜索“应用收到点击事件”、“发起请求”、“开始接收资源下载数据”、“资源下载完成”、“绘制”、“渲染完成”的Trace关键字,获知以下加载流程全景图:

    选中A点时间坐标,拖向B点的时间坐标,即可标记该时间段,并显示其时长。依次标记所需时间段,可知:总时长2s,应用收到点击事件到开始接收响应体耗时137ms,下载全程耗时1.5s,渲染流程单独耗时337ms。由此可知,总时长过长的主要原因是过长的下载耗时。

    复制URL到浏览器,可打开下载该图片资源,发现该图片大小为3.2M,明显超出该场景表现所需的图片资源大小,在未经充分加载优化的情况下会导致加载耗时过长。

分析结论

由于该图片/视频资源较大、未经过充分加载优化,导致出现加载缓慢的现象。

修改建议

可采取预下载优化和图片资源加载优化方案,优化图片/视频加载速度。