小程序
小游戏
企业微信
微信支付
扫描小程序码分享
聊天系统发送的内容需要逐条显示,但是一直显示不删除的话小程序就会很卡,所以想着只显示20条记录,够20条记录以后,发送一条,就是删除第一条的记录,内容是用cover-view标签写的,现在不知道cover-view标签如何动态删除,请问大佬们有办法么
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
cover-view本身的渲染性能就不高,导致setdata整个list,如果频率过快,性能一下子就炸了,抽成自定义组件也炸。楼上提到的只删除前几条,再push数据,只做到了数据量的维护,并没有根本上解决渲染卡顿白屏问题。我们目前优化的方向是维护两个消息队列,跑定时器渲染数据,不过好像不是很理想,尝试用canvas解决,又有点不好处理滚动问题。楼主有解决办法了记得分享一下
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
用个二十条的数组,每次push一个,shift一个,,然后重新遍历渲染一遍就好了
示例代码:小于20条时,往里面加。大于或者等于20条时。先删除第一条,再添加进去。这样就能保持不多于20条。好用记得点赞喔!
就设置一个20条数据的对象啊
data:{
list:[]
}
=============
var list = this.data.list
list = list.length >= 20 ? list.slice(1, 20) : list
list.push({...新的一条...})
this.setData({
list: list
})
页面list循环输出cover-view就行
只能什么wx-if了
但是如果你是做聊天系统,每提交一次后,可以查询最后20条记录返回,更新数据就可以了。
如果有定时查询,也一样返回20条记录,更新数据
或是查询当前聊天时间以后记录,返回记录 返回几条,就删除前几条。再把返回来记录添加到原来的数据后面就可以了
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
cover-view本身的渲染性能就不高,导致setdata整个list,如果频率过快,性能一下子就炸了,抽成自定义组件也炸。楼上提到的只删除前几条,再push数据,只做到了数据量的维护,并没有根本上解决渲染卡顿白屏问题。我们目前优化的方向是维护两个消息队列,跑定时器渲染数据,不过好像不是很理想,尝试用canvas解决,又有点不好处理滚动问题。楼主有解决办法了记得分享一下
用个二十条的数组,每次push一个,shift一个,,然后重新遍历渲染一遍就好了
示例代码:小于20条时,往里面加。大于或者等于20条时。先删除第一条,再添加进去。这样就能保持不多于20条。好用记得点赞喔!
就设置一个20条数据的对象啊
data:{
list:[]
}
=============
var list = this.data.list
list = list.length >= 20 ? list.slice(1, 20) : list
list.push({...新的一条...})
this.setData({
list: list
})
页面list循环输出cover-view就行
就算你wx:if或者hidden也要this.setData设置,再说了页面有很多不显示的cover-view,不耗内存不卡吗
只能什么wx-if了
但是如果你是做聊天系统,每提交一次后,可以查询最后20条记录返回,更新数据就可以了。
如果有定时查询,也一样返回20条记录,更新数据
或是查询当前聊天时间以后记录,返回记录 返回几条,就删除前几条。再把返回来记录添加到原来的数据后面就可以了