小程序
小游戏
企业微信
微信支付
扫描小程序码分享
现有500条数据,在页面中用wx:for进行渲染
现在修改其中一项数据,需要渲染5秒钟
let key = "dataArray[5].count";
this.setData({
[key]: 10
})
求大神帮忙如何优化?
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
即使只修改其中一项,时间开销还是和页面或自定义组件中的总节点数量相关的。如果 500 项中每一项都很大的话,确实也会很慢。
不过慢至 5s 还是不太可能发生的。请问是怎么测算时间的呢?
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
也不是每次都是5s,最长的大概是5S左右
let a = new Date().getTime();
}, function() {
let b = new Date().getTime();
console.log(b-a);
setData 的回调是保证发生在被应用到界面之后,可能会比实际渲染完成时间略晚,所以这个方式测出来的时间偏长。
特别地,如果是在小程序启动时(比如 onLoad 时)用这个方法测量,由于 onLoad 触发时间很早(大约相当于小程序 loading 界面开始展示的时候),渲染完成的时间相对而言会晚很多,所以测出来的时间会特别长。
谢谢
加个加载对话框,哈哈哈
请提供能复现问题的代码片段
不会做代码片段?
https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
即使只修改其中一项,时间开销还是和页面或自定义组件中的总节点数量相关的。如果 500 项中每一项都很大的话,确实也会很慢。
不过慢至 5s 还是不太可能发生的。请问是怎么测算时间的呢?
也不是每次都是5s,最长的大概是5S左右
let a = new Date().getTime();
this.setData({
[key]: 10
}, function() {
let b = new Date().getTime();
console.log(b-a);
})
setData 的回调是保证发生在被应用到界面之后,可能会比实际渲染完成时间略晚,所以这个方式测出来的时间偏长。
特别地,如果是在小程序启动时(比如 onLoad 时)用这个方法测量,由于 onLoad 触发时间很早(大约相当于小程序 loading 界面开始展示的时候),渲染完成的时间相对而言会晚很多,所以测出来的时间会特别长。
谢谢
加个加载对话框,哈哈哈
请提供能复现问题的代码片段
不会做代码片段?
https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html