时间:2019-05-04 来源:小程序工厂
经过我的测试,最后得出的结论是,setdata确实有长度限制, 这个长度的阈值是1048560个字符,如果setData设置的内容超过1048560个字符,就会造成数据解析失败。
你怎么测出来的
data: { list: [] } onReady: function() { var _new = []; for(var i = 0; i < 10000; i++) { _new.push({ id: i }); } this.setData({ list: _new }); } wxml------
哈哈哈
有限制,就算没限制,你也悠着点啊。响应数据大小处理一下不更好?没必要的数据就不要返回了。
一次加载那么多不影响用户体验和性能么。。分页加载你好我好大家好
我知道要做分页,但你用下面这种setData的方式做分页,迟早要出问题的 data: { list: [] } requestSuccess: function(res) { this.setData({ list: this.data.list.concat(res.list) }) }
你这种是假分页……
那真正的分页怎么做?
不要把数据一次性加载完,而是分批从服务器获取数据
我是分批取得,但取回来总得set到一个列表里,来渲染出来吧。微信小程序的setData机制,并不太适合做无限翻页交互,我看很多应用都是列表达到一定长度,就做了一个手动选择页码的控件来跳页码,清空列表,虽然这个问题我已经解决了,做到了无限翻页,但我想知道你们是怎么做无限翻页交互的,有可能你们的方法比我的好。
请教什么是真分页
看文档啊 一次不能超过1024kb啊
注意:
直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致。
单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。
文档里面有写 单次设置的数据不能超过1024kB
晕,有写吗?
https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page.html
晕死了,没看到,不过已经解决了,再加一层组件,分批次渲染
妙啊
能看看实现实现吗