(1)微信小程序官方介绍
连接:setData
(2)问题截图 appDataChange 数据传输长度为 1203320 已经超过最大长度 1048576
一般小程序做分页加载数据,会做一些下拉加载更多、然后上拉刷新的操作。
数据放在一个for循环里去加载,数据源是一个数组对象。在加载下一页数据时,将下一页的数据拼到当前数组后面。
这样的确可以实现分页加载数据,但是如果数组中的对象都比较大,那么可能加载个几页数据,这个数组的大小就超过微信的限制了。可能会出现 VM429:1 appDataChange 数据传输长度为 1203320 已经超过最大长度 1048576
的异常。
(3)优化后加载8000多条数据时,系统会卡死
(4)解决方案
更好的分页加载数据的方式
方法就是再增加一个数组,用来存放数据。上一个方法是一个数组中存放所有的数据,数据量很容易就会变大。这个方法,将每一页请求过来的数据的引用放到一个新的数组dataArray内。dataArray[0]存放第一页数据,dataArray[1]存储第二页数据。请求新一页,都只需要更新一组数据,这样set的数据就不会超过微信小程序允许的长度。这个方法首先在loadInitData时,清空dataArray,防止新数据与原数据冲突。然后将这一页数据放到dataArray[0]中即可。
声明:解决方案参考别人写的
链接地址如下:github项目地址