js计时器不精确的原因

113 阅读1分钟

1.硬件原因,计算机内部使用寄存器即使,没有原子钟,本身就不能实现真正精确计时

2.操作系统。stetimeout等api计时是调用操作系统进行计时的,不同操作系统计时都不是真正精确

3.w3c标准:w3c标准中说,如果settiemout嵌套五层以上,时间会多出至少4ms

4.事件循环:当一个定时器到了指定的时间进入任务队列,但是不会立即执行,必须等待执行线程里的任务执行完毕才会执行,这会消耗一定的时间,造成实际执行时间会长一些。