监听滑动手势频繁setData的性能问题
发布于 5 年前 作者 hejun 10554 次浏览 来自 问答

我们目前有个需求是:根据用户的滑动手势动态改变一个元素的高度

目前的实现方法是:监听手势滑动,实时用setData更新元素样式绑定的高度值

结果有时元素刷新高度延迟很严重,有时是手势滑动完成后1-2s,高度变化的动画才开始

看文档说是频繁setData,造成了小程序的渲染模块阻塞了,有没有什么替代方案可以解决这个问题呢?

3 回复

如果页面不是滚动的,单纯滑动动作延迟,可以试试2个行为。。

A:在json里增加 ‘usingComponents’:’’

B:用动画来设置当前位置,timingFunction:‘step-start’

建议事件绑定的时候使用catch;将可以合并的setData合并;利用css3的动画属性例如transform属性去完成,不要直接动态改height,会引起重绘,增加渲染层压力。

可以试试使用YrobotTouch,已经分装好了常用的手势事件:https://github.com/Yrobot/YrobotTouch-WXLP

弄个节流函数.这种动画最好不要在小程序做,有很多机型会很卡.

回到顶部