当前位置: 首页 > news >正文

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

小程序崩溃引发的问题

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

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

在真机上为:

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

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

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

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

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

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

转载于:https://juejin.im/post/5bc450476fb9a05d035c04d6

相关文章:

  • teragen/terasort_简化版
  • 云计算节点故障自动化运维服务设计
  • Redis 中的布隆过滤器
  • git操作:在CentOS7上面搭建GitLab服务器
  • windows下redis 开机自启动
  • SpringBoot系列: Actuator监控
  • JavaScript常用八种继承方案
  • 20172313 2018-2019-1 《程序设计与数据结构》课堂测试修改报告
  • 使用fiddler抓取手机上的HTTPS包
  • 云栖科技评论第76期:车用半导体混战 中国怎么战?
  • 兼容性总结
  • 运维技术(一)用docker安装elk之CentOS7.4
  • 时间复杂度分析经典问题——最大子序列和
  • Android Studio踩过的坑
  • 细说Redis(一)之 Redis的数据结构与应用场景
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Angular6错误 Service: No provider for Renderer2
  • Asm.js的简单介绍
  • Codepen 每日精选(2018-3-25)
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • java第三方包学习之lombok
  • js面向对象
  • Linux各目录及每个目录的详细介绍
  • MD5加密原理解析及OC版原理实现
  • Nacos系列:Nacos的Java SDK使用
  • Promise初体验
  • Redash本地开发环境搭建
  • SwizzleMethod 黑魔法
  • text-decoration与color属性
  • Vue 动态创建 component
  • 大快搜索数据爬虫技术实例安装教学篇
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何进阶一名有竞争力的程序员?
  • 思考 CSS 架构
  • 跳前端坑前,先看看这个!!
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​​​​​​​​​​​​​​Γ函数
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (超详细)语音信号处理之特征提取
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (转) Android中ViewStub组件使用
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .net web项目 调用webService