我仅在Vivaldi浏览器上遇到了一个奇怪的错误。
我正在使用setinterval()(每100毫秒)显示滚动中的元素,但是,当我在MacBook Pro上开始滚动时... setinterval会停止触发,并且直到滚动停止后才会恢复。
结果是直到用户真正停止滚动时,在setinterval上淡入的元素才逐渐淡入。为了使它更加奇怪,此行为在页面上停留约10秒后停止。
是否想知道这是什么已知问题或是否有修复程序?
答案 0 :(得分:1)
这是一个极大的简化,但是您很可能会观察到以下行为 1 。
调用setTimeout / setInterval
时,会将函数放在event queue中,最早在 X ms之后执行。
但是,浏览器可能需要在堆栈顶部进行更重要的处理,例如绘制UI。在这种情况下,只有在处理了较高优先级的工作之后,setInterval
回调才会被处理。
如何缓解该问题?尝试使用requestAnimationFrame代替工作。
1 欢迎对此帖子进行更正。