setTimeout setInterval 的区别

红宝书上说: 在开发环境下,很少使用真正的 setInterval 间歇调用,原因是后一个间隙调用可能会在前一个间歇调用结束之前启动。P.205.

据个人了解:任务队列中,setInterval 的处理程序的实例只能有一个为什么还会出现这种情况呢?????

阅读 3.2k
2 个回答

https://johnresig.com/blog/ho...
如想详细了解,可阅读上文;

红宝书说的情况,跟javascript event loop相关;

先暂时mark一下,等下忙完回来完善答案;

举个栗子,
一个轮播图,如果其轮播动画的时间长度是6s,setInterval的间隔时长为5s,即为所说的后一个间隙调用可能会在前一个间歇调用结束之前启动。
并不是说一定会这样,但是有各种延时或是异步操作的可能性,如果定时,而不是在上一次调用的结束再进行可能就会产生一定问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题