页面跳转随使用次数增多白屏时间越来越长
发布于 6 年前 作者 yancao 6109 次浏览 来自 问答

如上图,我们的小程序从第一个页面跳转到(tap监听回调执行wx.navigateTo方法进行跳转)第二个页面,在测试中发现,如果多次点击,会导致跳转时间越来越长,在跳转的过程中会出现纯白页面不显示任何东西。

在程序里面log一下执行时间,如下图所示:

这是刚载入的时候执行的速度:点击跳转是在第一个页面执行点击,并记录时间。在第二个页面的onload事件和onshow事件分别取得时间与第一个页面点击时刻的时间间隔,分别只有200多与300多毫秒

下图是来回切换约30次从第一个页面与第二个页面后的结果log结果,加载时间越来越长,甚至都快到了两秒,这也导致我们的小程序在跳转的时候会有白屏现象。

请问如上问题一般是由于什么引起的?

补充问题描述:

根据反馈,重新进行log如下:

在点击监听事件开始记录时间,完成逻辑处理后调用wx.navigateTo之前log到此时执行时间。

在第二个页面的onload开始和结束log从点击开始时到这两个阶段执行时间。

在第二个页面的onshow开始和结束log从点击开始时到这两个阶段执行时间。

最后执行的效果如下:

第一次点击跳转时时间,都非常短:

跳转返回反复执行20次左右的时间记录:

期间onshow执行时间突然变成,且之后未见变短

继续反复跳转

观察结果,白屏是由于onload事件未执行导致,也就是在onload执行之前,跳转到新页面完全白屏。

继续补充进一步测试结果。

onload事件执行的开始时间仍然递增无法定位原因

onshow的开始时间到结束时间在一定数量访问次数后暴增的原因已经查明,在于我们调用了wx.getStorageSync()方法,该方法正常情况下执行时间约为200ms,但是在访问30次作用之后访问时间暴增至3000ms,(storage中没有任何数据更新,理论上每次的访问时间应该是一样的)

下面是代码片段

以下是getStorageSync执行时间

回到顶部