收藏
回答

倒计时安卓机卡顿,求官方回复啊

问题模块 框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
客户端 小程序 Bug Android 8.0 华为p9 6.7.3

- 当前 Bug 的表现(可附上截图)


    页面上用setInterval写的活动倒计时,如果当前页面上下滑动,很明显能看到倒计时暂停,然后突然会连着跳几秒,如果不触摸页面,倒计时恢复正常了


    注明:当前模拟的代码片段数据量不是很多,倒计时看着只是稍微暂停,但在实际项目中,页面数据量很大,倒计时卡顿会很明显


- 预期表现

    倒计时显示正常

- 复现路径


- 提供一个最简复现 Demo


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

10 个回答

  • 王朝振
    王朝振
    2018-12-25

    这是小程序中安卓下,滚动会导致所有异步阻塞,包括setInterval,触底翻页等。

    我碰巧知道解决办法。

    给页面对应的 `.json` 文件(即页面的配置文件),添加如下配置,即可解决问题。

    {
      "config": {
        "usingComponents": {}
      }
    }


    如果是原生写的话,不要config这一层。我用mpvue 写的打包出来的文件,就没有config这一层 了。

    {
      "usingComponents": {}
    }


    2018-12-25
    赞同 7
    回复 27
    • 〆小偏執゛
      〆小偏執゛
      2018-12-25

      好的,我试一下,谢谢啦

      2018-12-25
      回复
    • 小康¹⁸
      小康¹⁸
      2018-12-25

      我也赶紧去试试!

      2018-12-25
      回复
    • 小康¹⁸
      小康¹⁸
      2018-12-25

      不管用呀。。。

      2018-12-25
      1
      回复
    • 小康¹⁸
      小康¹⁸
      2018-12-25回复〆小偏執゛

      你尝试的怎么样

      2018-12-25
      回复
    • 宁静致远
      宁静致远
      2018-12-25回复小康¹⁸

      usingComponents 效果怎么样?

      2018-12-25
      回复
    查看更多(22)
  • Eric Huang
    Eric Huang
    置顶回答2018-12-26

    问题已复现,我们会在后续版本中进行修复。

    2018-12-26
    赞同
    回复
  • 小程序技术专员-june
    小程序技术专员-june
    2018-12-26

    因为历史原因,小程序页面其实是有两个实现,用为暴露的 api 一样,所以开发者可以不用去理解实现。基本上可以认为是通过 usingComponents 来辨别是走了哪种实现的。带了 usingComponents 字段会走自定义组件面世后的新实现,在更新上性能会更好。所以可以尝试按照部分层主所说的方式补上这个字段,或者将要频繁更新的那部分抽成自定义组件。

    2018-12-26
    赞同
    回复 3
    • 小康¹⁸
      小康¹⁸
      2018-12-26

      亲,倒计时的显示安卓系统滑动界面,数值会停住。补了这个字段也不行呀

      2018-12-26
      回复
    • 小程序技术专员-june
      小程序技术专员-june
      2018-12-26回复小康¹⁸

      噢,你的问题是滚动时 setData 无效吧。安卓端可能在 webview 和 jscore 两边通信会存在阻塞问题,如果频繁发生事件数据通信的话,也有可能让 setData 延迟。


      目前这个除了合并零碎的 setData、去除无用的事件监听之外可能没有很好的解决方案。我们近期有开始在摸索如何处理类似的小范围更新问题,有兴趣的话可以继续关注小程序的更新。

      2018-12-26
      回复
    • 小康¹⁸
      小康¹⁸
      2018-12-27回复小程序技术专员-june

      我很有兴趣呀!


          不过这个问题目前是不是没的解决办法了? 我界面滚动监听是必须的,因为我要知道它滚了多少,滚动方法本身我没有进行setData。倒计时是肯定要每秒都setData的呀

      2018-12-27
      回复
  • 〆小偏執゛
    〆小偏執゛
    2018-12-24

    求官方看到回复下呀,试了好久都不知道怎么解决

    2018-12-24
    赞同 1
    回复
  • 长斌
    长斌
    05-24

    我现在如果在config加了

    "usingComponents": {}

    在安卓上 onPageScroll就可以及时渲染了

    但是,在iOS上又开始卡顿了


    去掉这句iOS正常了,安卓又开始卡顿。这怎么办?

    05-24
    赞同
    回复 1
    • 小康¹⁸
      小康¹⁸
      05-24

      你可以新开个帖子,找找官老爷,看看是不是新问题出来了。

      05-24
      回复
  • Thinking80s
    Thinking80s
    05-06

    usingComponents: {} 加上这句就可以了,很神奇啊

    05-06
    赞同
    回复
  • 攻城狮@射鸡屎
    攻城狮@射鸡屎
    2018-12-25

    你不是一个人,顺便问下,你是用原生还是用的mpvue写的?

    2018-12-25
    赞同
    回复 3
    • 小康¹⁸
      小康¹⁸
      2018-12-25

      反正我是原生的

      2018-12-25
      回复
    • 〆小偏執゛
      〆小偏執゛
      2018-12-25

      mpvue写的

      2018-12-25
      回复
    • 攻城狮@射鸡屎
      攻城狮@射鸡屎
      2018-12-25回复小康¹⁸

      我是mpvue,但是试过最简单的原生写也会

      2018-12-25
      回复
  • 小康¹⁸
    小康¹⁸
    2018-12-25

    我这个问题都好长时间了,至今没有解决。。。 这是其一。 其二:倒计时从 8-0,跳转界面。安卓显示到0 后跳转。ios微信7.0版本,它显示从8到1没有0直接显示8然后跳转页面。时间时一样的,显示不一样。

    2018-12-25
    赞同
    回复
  • meszyouh
    meszyouh
    2018-12-25

    列表时计时是怎么计时的

    2018-12-25
    赞同
    回复
  • 管凯旋
    管凯旋
    2018-12-24

    @

    2018-12-24
    赞同
    回复