在定时器后面写个10000次循环,误差率达到600ms,如果循环次数更多,误差率更大
记住不要在定时器后面写任务量特别巨大的代码,不然定时器就不准了
产生的原因就是:js是单线程的。定时器会进入回调队列,主线程会轮询询问回调队列是否可以调用了,但此时主线程没空,因为还在循环中,所以有了误差。使用worker可以解决这个问题,但是worker有些浏览器不支持
在定时器后面写个10000次循环,误差率达到600ms,如果循环次数更多,误差率更大
记住不要在定时器后面写任务量特别巨大的代码,不然定时器就不准了
产生的原因就是:js是单线程的。定时器会进入回调队列,主线程会轮询询问回调队列是否可以调用了,但此时主线程没空,因为还在循环中,所以有了误差。使用worker可以解决这个问题,但是worker有些浏览器不支持