基础知识
setTimeout
超时调用,超过时间T,就执行fn
setInterval
间歇调用,调用周期t,执行fn
相同点
二者调用后均返回数值ID,可以用来取消。
清除setInterval比较重要
setInterval间隔时间不准确原因
1 假如fn执行时间大于周期的话,会导致间隔时间不准确。
因为他必须执行完上一个后才会去执行下一个,假如上一个使用时间超过间隔时间,下一个函数会在上一个函数执行结束之后立即执行,所以间隔不准确。
2 当一个函数时间特别长,以至于发出多个fn,会导致多个fn被忽略,因为任务队列不会有两个以上的同一个定时器函数存在。