码迷,mamicode.com
首页 > 编程语言 > 详细

深入理解javascript之定时器

时间:2020-04-23 13:50:43      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:evel   网络   call   就会   bom   org   一个   inf   mic   

setTimeout/setInterval

简单地说setTimeout()指在指定时间后执行一次指定函数,setInterval()指每隔一段所指定的时间执行一次指定函数,
两个方法都称为定时器,不是ECMAScript的内容,而是属于BOM

setTimeout

MDN语法 https://developer.mozilla.org/zh-CN/docs/Web/API/Window/setTimeout

技术图片

setInterval

MDN语法 https://developer.mozilla.org/zh-CN/docs/Web/API/Window/setInterval

技术图片

如下图,如果一个onclik事件触发了setInterval(fun(){}, 200);
如果事件处理程序花了 300ms 多一点的时间完成,同时定时器代码也花了差不多的时间,
就会同时出现跳过间隔且连续运行定时器代码的情况

技术图片

问题
(1) 某些间隔会被跳过;
(2) 多个定时器的代码执行之间的间隔可能会比预期的小
(3) setInterval() 无视代码错误
(4) setInterval() 无视网络延迟
重复定时器
setTimeout(function(){
	
	....
	setTimeout(arguments.callee, 50);
	
}, 50);

深入理解javascript之定时器

标签:evel   网络   call   就会   bom   org   一个   inf   mic   

原文地址:https://www.cnblogs.com/pengsn/p/12760259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!