小程序
小游戏
企业微信
微信支付
扫描小程序码分享
第一次进去加载20条商品列表时,在接口请求成功时,记录下时间,在setData的函数里记录下成功渲染的时间。刚进去时这两个时间差距不大。当下拉到底获取第二页数据,并设置setData时,两个时间差有时几秒甚至10秒以上,导致接口请求成功,但页面的数据渲染很慢
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
我也是这个问题,渲染速度甚至等到了50秒,找不到问题在哪里。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
你是不是在页面滚动时频繁的设置setData 了
没有,就是滚动的时候请求数据,然后重新setData请求回来的数据。
第二次渲染慢的原因,应该是因为不仅渲染了第二页的数据,还将第一页的数据也放进了data中又渲染了一遍,相当于渲染了两倍的数据量,渲染速度会成倍增加的。
1、建议获取第二页数据时,只在页面渲染第二页的数据,第一页的数据不需再放进data中再渲染一次。
2、页面中可以加上wx:key,可以加快渲染速度。
获取第二页数据时,如何只在页面渲染第二页的数据,并且保证第一页数据还在页面上
wx:key是这种写法吧
试一下下面的方式能否解决你的问题,先用一个obj存放一下你要setData的第二页的值,然后最后再setData这些数据。
/**
* result 后台获取的第二页的数据
* obj 盛放要setData的数据
* item 数组每一项的值
* productlist 数组变量名
* index 当前项的数组下标
*/
for (var i in result) {
var obj = {};
obj['productlist[' + index + ']'] = item;
}
that.setData(obj);
wx:key的写法是正确的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
我也是这个问题,渲染速度甚至等到了50秒,找不到问题在哪里。
你是不是在页面滚动时频繁的设置setData 了
没有,就是滚动的时候请求数据,然后重新setData请求回来的数据。
第二次渲染慢的原因,应该是因为不仅渲染了第二页的数据,还将第一页的数据也放进了data中又渲染了一遍,相当于渲染了两倍的数据量,渲染速度会成倍增加的。
1、建议获取第二页数据时,只在页面渲染第二页的数据,第一页的数据不需再放进data中再渲染一次。
2、页面中可以加上wx:key,可以加快渲染速度。
获取第二页数据时,如何只在页面渲染第二页的数据,并且保证第一页数据还在页面上
wx:key是这种写法吧
试一下下面的方式能否解决你的问题,先用一个obj存放一下你要setData的第二页的值,然后最后再setData这些数据。
/**
* result 后台获取的第二页的数据
* obj 盛放要setData的数据
* item 数组每一项的值
* productlist 数组变量名
* index 当前项的数组下标
*/
for (var i in result) {
var obj = {};
obj['productlist[' + index + ']'] = item;
}
that.setData(obj);
wx:key的写法是正确的。