setInterval指定的是“开始执行”之间的间隔,并不考虑每次任务执行本身所消耗的时间。因此实际上,两次执行之间的间隔会小于指定的时间。比如,setInterval指定每100ms执行一次,每次执行需要5ms,那么第一次执行结束后95毫秒,第二次执行就会开始。如果某次执行耗时特别长,比如需要105毫秒,那么它结束后,下一次执行就会立即开始。 这句话有错误吗??
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这段话逻辑没有问题,建议看看这篇文章:你真的了解setTimeout和setInterval吗?,完美解释你的问题。
setInterval我的理解是两次事件执行的时间间隔,你需要将事件看做一个时间点,而不是时间段,不要将事件的执行时间和setInterval的时间间隔搞混了。具体的你要通过代码来验证下就知道了。(就比如你高中学物理的时候不是也有类似这个问题的吗,你主要是要搞清楚定义。)
请看这个问题setTimeout() 和 setInterval() 本质区别在哪里?