尝试解决微信小程序分页最后setData数据太大限制的问题

栏目: IOS · Android · 发布时间: 7年前

内容简介:前些天,突然接到用户的大量反馈,我们的小程序频繁出现闪退,崩溃的现象。如图,于是马上着手追查问题,首先确定了导致闪退的页面。是在一个有长列表的页面,当上拉加载更多,翻页翻多几页的时候就导致闪退了。经过重重排查(时间问题,这里就不详细描述排查的方法了,大多数用的都是缩小范围排除法啦),最后终于确定了问题所在,原来是在列表中,同事最近新加上的css3动画所致,这里的列表是循环渲染的一个组件,组件中的一个弹窗的弹出和收起,使用动画,但是这里没有加上wx:if,导致了循环渲染该动画,所以翻页翻着翻着就挂掉了。 确

前些天,突然接到用户的大量反馈,我们的小程序频繁出现闪退,崩溃的现象。如图,

尝试解决微信小程序分页最后setData数据太大限制的问题

于是马上着手追查问题,首先确定了导致闪退的页面。是在一个有长列表的页面,当上拉加载更多,翻页翻多几页的时候就导致闪退了。经过重重排查(时间问题,这里就不详细描述排查的方法了,大多数用的都是缩小范围排除法啦),最后终于确定了问题所在,原来是在列表中,同事最近新加上的css3动画所致,这里的列表是循环渲染的一个组件,组件中的一个弹窗的弹出和收起,使用动画,但是这里没有加上wx:if,导致了循环渲染该动画,所以翻页翻着翻着就挂掉了。 确定了问题,就很好办了,加上条件判断,只有需要的时候,才渲染弹出弹窗。真机调试,暴力狂刷数据,发现闪退的现象不再出现了,闪退问题解决,然而高兴不到三分钟,又出问题了,发现翻页到十几页的时候,再也刷不动后面的数据了,明明是还有更多数据的。再在开发 工具 上看查看数据,结果控制台报了这么一个错

尝试解决微信小程序分页最后setData数据太大限制的问题

在真机上为:

尝试解决微信小程序分页最后setData数据太大限制的问题

这是什么问题呢,查看官方文档,发现是有这样的限制的

尝试解决微信小程序分页最后setData数据太大限制的问题

回顾我们的代码,这里的分页加载数据,上拉加载,数据是放在一个for循环里去加载,数据源是一个数组对象。在加载下一页数据时,将下一页的数据拼到当前数组后面。这里是常规的做法。可以看看代码:

尝试解决微信小程序分页最后setData数据太大限制的问题
尝试解决微信小程序分页最后setData数据太大限制的问题

这里可以看到,每次获取新的一页,都要重新setData新的数组,仔细想想,当这个数组到后面越来越大的时候,很容易就超出了单次设置数据超过1024kb的限制了。那么怎么解决这个问题呢,这里官方文档里面其实有提到一个注意点,

尝试解决微信小程序分页最后setData数据太大限制的问题

既然这里是支持改变数组的某一项,那么分页的问题,可以改变为一个二维数组,还是直接看代码吧。

尝试解决微信小程序分页最后setData数据太大限制的问题
尝试解决微信小程序分页最后setData数据太大限制的问题

这里的方法则暂时摆脱了单次设置数据多大的问题。当然,要是单页的数据过多,还是会出现问题的。最合适的还是对数据结构进行精简,前端不必要的数据,可以不传过来前端。

写在最后,这次第一次写类似的分享,描述还是有些不清晰,以后可以多尝试这样的总结吧。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java与模式

Java与模式

阎宏 编著 / 电子工业出版社 / 2002-10 / 88.00元

《Java与模式》是一本讲解设计原则以及最为常见的设计模式的实用教材,目的是为了工作繁忙的Java系统设计师提供一个快速而准确的设计原则和设计模式的辅导。全书分为55章,第一个章节讲解一个编编程模式,说明此模式的用意、结构,以及这一模式适合于什么样的情况等。每一个章节都附有多个例子和练习题,研习这些例子、完成这些练习题可以帮助读者更好地理解所讲的内容。大多数的章节都是相对独立的,读者可以从任何一章......一起来看看 《Java与模式》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具