js定时器的准确时间?
发布网友
发布时间:2022-04-27 05:47
我来回答
共3个回答
热心网友
时间:2022-04-22 12:11
js定时器的准确时间
这个相差是不确定的。
因为虽说1000毫秒是1秒,但是js是单线程的,又怎么会有一个线程单独来计算时间呢,那么问题来了。
js是如何定时的?
其实js的setTimeout机制是这样的,每个语句都会加入到执行的队列中,也就是挂起状态,其实是一直往执行队列里面加你写的语句上一句其他代码,或者setTimeout的回调函数里面的代码,执行完了,再次执行已经挂起的setTimeout,那么此时执行时间与电脑配置和js执行效率有关。
所以结论就是,电脑速度越快,js代码效率越高,这个延迟就越小。
但是,一定会有一定的延迟的,因为js是单线程的
热心网友
时间:2022-04-22 13:29
这个相差是不确定的。
因为虽说1000毫秒是1秒,但是js是单线程的,又怎么会有一个线程单独来计算时间呢,那么问题来了。
js是如何定时的?
其实js的setTimeout机制是这样的,每个语句都会加入到执行的队列中,也就是挂起状态,其实是一直往执行队列里面加你写的语句上一句其他代码,或者setTimeout的回调函数里面的代码,执行完了,再次执行已经挂起的setTimeout,那么此时执行时间与电脑配置和js执行效率有关。
所以结论就是,电脑速度越快,js代码效率越高,这个延迟就越小。
但是,一定会有一定的延迟的,因为js是单线程的追问那按惯例最小值要设多大才不会有太大异常,像是设置为1毫米,在页面上肯定不太正常~
追答这个和每个浏览器都不一样,如果你做动画的话,想要准确,就要做“运动补偿”
也就是增加速度来补偿逝去的时间。
就算这么做了 也只能保证误差在50毫秒。
比较复杂 得根据项目需求来定
热心网友
时间:2022-04-22 15:04
1000毫秒就是1秒追问这个必须是不准确的~