收藏
回答

wx.createSelectorQuery() 在真机上非常慢

问题模块
API和组件


由于slider不能改样式,所以只能结合movable-area、touchmove、wx.createSelectorQuery来模拟了


在开发工具上测试没有问题,但是真机上测试的时候简直就是灾难


let time1 = new Date().getTime();
wx.createSelectorQuery().select('#mySlider').boundingClientRect(function (rect) {
 let time2 = new Date().getTime();
 console.log("time:"+(time2-time1))
}).exec()


就这么段代码,每次执行需要200-300毫秒,我一个400rpx高的slider拉下来大概touchmove会触发60次


求求小程序开发团队教教我该怎么办!!!


ps:就长这么个slider



最后一次编辑于  2017-12-07  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

4 个回答

  • 波
    2017-12-22

    楼主,您是怎么实现的呀,在线急等,麻烦楼主了

    2017-12-22
    赞同
    回复
  • Σ( ̄。 ̄ノ)ノ
    Σ( ̄。 ̄ノ)ノ
    2017-12-07

    改成touchend触发的体验差了不少,但是目前只能这么解决了,期望官方能放开slider样式或者给movable-area加上当前移动的x,y坐标也好啊

    2017-12-07
    赞同
    回复
  • Σ( ̄。 ̄ノ)ノ
    Σ( ̄。 ̄ノ)ノ
    2017-12-07

    你的意思是touchend的时候再执行?@

    2017-12-07
    赞同
    回复
  • 嗯
    2017-12-07

    哇 你的touchmove 加个节流器啊

    只要你拉着  不管多少秒 就只执行一次

    2017-12-07
    赞同
    回复