当我们加载网页时,不是发送URL请求内容的所有内容,但是除了主要URL请求之外,还有许多其他请求,例如JS,CSS,图片和其他文件这是独立的。对于某些请求,某些请求仍然是串行的,并且在渲染之前需要下载这些资源文件。
移动终端使用WebView来影响用户体验,这主要是因为加载时间太长(发出了更多请求),从而导致显示空白页很长时间,这反映了Web View加载过程中长时间的负载时间,主要包括以下三个步骤,主要包括以下三个步骤
如何减少这三个步骤的时间消耗已成为研究的重点。
以社区咨询页面为例,在良好的4G网络条件下,随机获取五组数据,并获得了以下数字。HTML的平均请求时间为506ms,JS和CSS的时间为783ms。这不包括图片请求的时间。
请求的示例:例如,我使用WebView加载请求https://h5plus.dewu.com/postsph
从Chales的请求瀑布流来看,您可以看到,当您加载WebView的URL时,首先请求HTML,然后再通过分析加载一些资源,例如CSS和JSS。同一时间,CSS和JS请求还会发送7个请求。这仍然是一个不太复杂的网络浏览页面。如果太复杂了,您可以想象请求的数量。如何减少CSS和JS请求也是优化H5 -End的方法之一。对于客户端,也可以通过优化WebVEIW的加载速度。提前将一些资源放在JS和CSS中。
通过服务器,这也是URL形式的传统加载方法。缺点是,当网络不好时,将会有一个长长的白屏幕,并且用户体验不好。
通过注入当地内容的方法,加载本地HTML模板是大多数公司研究的重点。它可以实现WebView秒,例如标题新闻详细信息页面。它适用于没有太多关注真实时间更改的页面。对于白屏,它可以实现本地体验。原则是提前下载所需的JS,CSS和HTML模板,并提前渲染WebView。就在打开时,客户注入内容数据,这大大提高了WebView的加载速度,这也是本文的重点。
直接加载了皮带标签的字符串(加载在丰富的文本中)。该解决方案适用于简单而纯粹的显示UI接口,可实现简单的比较和一个函数。
目前,社区咨询列页面,该页面的上部使用WebView,下部是本机评论页面。加载WebView的方法也是通过URL加载的传统方法,以改善用户体验并减少WebView的加载时间,我们调查了WebView的优化。
最终,通过调查和计划比较,客户选择了调查来加载本地HTML模板,并通过注入内容加载WebView页面。
因为在社区咨询页面上加载列表时,已经获得了渲染WebView的内容数据,因此,当您单击输入咨询详细信息页面时,内容数据实际上是位置的,这相当于减少WebView发送请求的数量.CSS的数据和HTML模板提前放置,并通过文件协议提前加载,然后在打开WebView时,将内容直接注入本地HTML模板,从而大大保存WebView请求并加载时间。
最终的WebView加载请求图如上图所示,节省了中间HTML,CSS和JS请求的时间。通过加载离线本地方法,它极大地提高了速度。加载HTML,CSS和JS的时间可以忽略。
离线软件包下载逻辑:
如何在加载的加载内容中获取内容数据内容的内容:
最后,以演示的形式使用了4G网络条件的优化之前和之后的比较效果。比较效果如下:
优化之前?4G优化咨询列.mp4
优化之后?4G优化咨询列.mp4
就演示而优化数据比较
加载到WebView到渲染末尾的时间如下
从上面的数据可以清楚地看出,从加载到渲染的结尾,WebView增加了约98%,而且优化效果仍然很明显。
接下来,我们将完善每个阶段网络浏览的请求时间:
CSS,JS资源网络请求时间
HTML网络请求时间
因为可以将CSS,JS和HTML模板以离线资源的形式放置,因此可以节省要求资源的时间。在这种情况下,它将大大减少网络浏览量加载过程中的时间。
图片的加载时间也得到了显着改善。相关数据如下。这种增加也是非常客观的。
对于技术而言,优化是无穷无尽的,并且已经在路上。它仍处于演示阶段。在下一阶段,我们将根据计划进行优先优化社区咨询专栏的细节的计划。