他们本质上试图做同样的事情,但是这种
setInterval方法比该
setTimeout方法更加准确,因为要
setTimeout等待1000ms,然后运行该函数,然后设置另一个超时。因此,等待时间实际上超过了1000毫秒(如果函数执行时间较长,则等待时间会更长)。
尽管有人可能会认为
setInterval将执行完全相同每1000毫秒,这是需要注意的重要
setInterval也将推迟,因为
Javascript是不是多线程的语言,这意味着-如果有运行脚本的其他部分-区间将有等待完成。
在此Fiddle中,你可以清楚地看到超时将落在后面,而间隔几乎总是以近1个呼叫/秒的速度(脚本正在尝试执行)。如果将顶部的速度变量更改为类似20的小值(这意味着它将尝试每秒运行50次),则该间隔将永远不会达到平均每秒50次迭代。
延迟几乎总是可以忽略不计,但是如果你要编写非常精确的内容,则应该使用自调整计时器(本质上是基于超时的计时器,它会根据所创建的延迟不断进行自我调整)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)