【问题标题】:Setinterval Being Paused on ScrollSetinterval 在滚动时暂停
【发布时间】:2018-08-09 14:46:41
【问题描述】:

我在 Vivaldi 浏览器中遇到了一个奇怪的错误。

我使用 setinterval()(每 100 毫秒)在滚动时显示元素,但是当我开始在 MacBook Pro 上滚动时... setinterval 停止触发,直到滚动停止才会恢复。

结果是在 setinterval 上淡入的元素直到用户真正停止滚动才会淡入。更奇怪的是,这种行为在页面上大约 10 秒后停止。

想知道这是否是任何已知问题或是否有解决办法?

【问题讨论】:

    标签: javascript scroll vivaldi


    【解决方案1】:

    这是一个巨大的简化,但您很可能会观察到以下行为1

    当您调用setTimeout / setInterval 时,您将函数放在event queue 中以在X 毫秒后最早执行

    但是,浏览器可能有更重要的工作要在堆栈顶部处理,例如绘制 UI。在这种情况下,setInterval 回调将不会被处理,直到更高优先级的工作被处理。

    如何缓解问题?尝试使用requestAnimationFrame 代替工作。

    1欢迎对本文进行更正。

    【讨论】:

      猜你喜欢
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      • 2019-04-12
      • 1970-01-01
      • 2011-10-26
      • 2012-01-22
      • 1970-01-01
      相关资源
      最近更新 更多