网上有很多关于setTimeOut和setInterval的资料,查查就会明白。如果有幸你进了这里,就简单看下面几句话吧。
最基本的setTimeOut是在一个时间间隔后执行一个任务。
setInterval是在某个时间间隔不断的执行某个任务。
也就是setTimeOut只执行一次,setInterval循环执行。
如果在setTimeOut要执行的任务里再次调用setTimeOut,岂不是跟setInterval实现一样的效果了?其实不然!
看如下代码:
funtion run1(){
//操作
setTimeOut(run1,1000);
}
setTimeOut(run1,1000);
再看setInterval的:
function run2{
//操作
}
setInterval(run2,1000);
看似这两种写法实现的效果一样,其实大不相同。这就体现在setTimeOut和setInterval最重要的不同上了。
setTimeOut在执行其所要调用的方法时除了计算参数时间(时间间隔)还要等待方法执行时间。
setInterval在执行其所要调用的方法时严格按照参数时间(时间间隔)执行,不会等待方法执行时间,如果执行方法的时间超过了参数时间(时间间隔),则setInverval将取消下次执行,进行下下次的方法调用。
看如下代码:
funtion run1(){
//操作
//延时200毫秒
setTimeOut(run1,1000);//2
}
setTimeOut(run1,1000);//1
以上1执行完后1000毫秒后执行run1假设操作共耗200毫秒,然后执行2,再次等待1000毫秒执行run1.可以看出间隔时间变成了1200毫秒。
再看setInterval的:
function run2{
//操作
//延时200毫秒
}
setInterval(run2,1000);
首先执行setInterval,1000毫秒后执行run2,操作200毫秒,然后setInterval只会再等待800毫秒就会执行run2.因此setInvetval会严格按照1000的间隔进行run2的执行。
如果是下面这种情况:
function run3{
//操作
//延时1200毫秒
}
setInterval(run2,1000);
首先执行setInterval,1000毫秒后执行run2,操作1200毫秒,这里在run3用了1000毫秒时setInterval不会执行run3,等run3执行完毕1200毫秒后,setInterval依然不会马上执行run3,而是会等待800毫秒才执行run3,因为run3执行时间超过了参数时间(时间间隔),setInterval将过跳过此次调用。因此,setInverval会严格按照时间间隔执行调用方法,如果被调用的方法执行时间超过了时间间隔,setInterval将忽略当次执行。
至此,我想,计时程序用setTimeOut还是setInterval一定很明确了吧。Of Course,It is "setInterval"~~~~~~
分享到:
相关推荐
Node.js和js一样也有计时器,超时计时器、间隔计时器、及时计时器,它们以及process.nextTick(callback)函数来实现事件调度。今天先学下setTimeout和setInterval的使用。 一、setTimeout超时计时器(和GCD中的after...
real-interval 如果你用setTimeout或setInterval实现过网页倒计时功能,你就会发现: 当电脑或者APP休眠了一段时间后,倒计时会出现问题:它比正确的时间慢了。 real-interval能解决这个问题。
时刻计时器概要这是一个Moment.js插件,它允许使用计时器,该计时器比本机JavaScript计时器提供更多的控制权。 基本上,这是对JavaScript自己的setInterval和setTimeout的重写。 有关示例,请参见示例文件夹或阅读...
大概半年前发表过一篇关于setTimeout和setInterval的文章,但是现在回去仔细一看发现其实存在很多不足以及错误。事实上,setTimeout和setInterval并没有我们...自然是要用到我们所说的timer,也就是计时器。当执行setTi
主要介绍了JavaScript setInterval()与setTimeout()计时器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
跨浏览器检测Web字体加载,而无需通过计时器(setTimeout / setInterval)进行检查。 用法 使用patch.ttf文件修补字体,该文件包括上的空白图形(无间距和无标记) 在CSS中声明@font-face 。 加载库。 ...
如果用setTimeout实现setInerval的功能,就需要在执行的程序中再定时调用自己才行。如果要清除计数器需要 根据使用的方法不同,调用不同的清除方法:例如:(1): 代码如下:t=setTimeout(‘northsnow()’,1000);...
js的一个简单应用,立秋倒...清除计时器 (==与使用的计时器一 一 对应==) clearInterVal(计时器名称) claerTimeOut( 计时器名称) 以上四个函数使用时都要说明计时器名称,否则可能出现第一次以后停止倒计时没有效果
js中计时器重要使用window.setInterval()方法和window.setTimeout()方法, 其中setInterval()方法的作用是每隔一段时间执行一次方法,而window.setTimeo...
在js中如果打算使用setInterval进行倒数,计时等功能,往往是不准确的,因为setInterval的回调函数并不是到时后立即执行,而是等系统计算资源空闲下来后才会执行.而下一次触发时间则是在setInterval回调函数执行完毕之后...
广告动画依次出现等等需求,刚最近基于业务需求,需要实现一个累加通话时长的计时器,这时候就需要定时器登上我们的代码舞台了,其实对于计时器,它的原理就是通过定时器来实现的,那么在写业务需求之前,我先说说...
使用以下代码对具有onMount和onUnmount生命周期的组件进行映像,如果在1000ms内安装和卸载了该组件,则计时器仍会触发class App { onMount ( ) { /* timer id should assign to an identifier or member for ...
免责声明-此实现使用线程而不是队列setTimeout(auto function,timercpp Javascript,如c ++开发人员的计时器)此标头库仅具有js等效于c ++的setTimeout()和setInterval()。免责声明-此实现使用线程而不是队列...
计时器setTimeout()和setInterval()两个都是js的计时功能的函数两个有些区别。 setTimeout(): 在js手册中的解释:用于在指定的毫秒数后调用函数或计算表达式; 也就是说在执行完设定好的秒数后再执行。 实验代码...
工人计时器setInterval()和setTimeout()的替代品,可在未聚焦的窗口中使用。动机对于依赖脚本(如setInterval()或setTimeout()),当运行脚本的网站失去焦点时,事情会变得混乱。 在这种情况下,Chrome,...
音频上下文定时器setInterval() 和 setTimeout() 的替代品,可在未聚焦的窗口中使用。动机对于依赖脚本,如 setInterval() 或 setTimeout(),当运行脚本的站点失去焦点时,事情会变得混乱。 在这种情况下,Chrome、...
精准定时器模块 version 1.2, 2015, jan: open sourcedversion 1.0, 2012, jun描述适用于 iOS 的精确计时器模块,精度为毫秒,主要用纯 C 编写。 JavaScript 的setInterval()函数有一个低精度的计时器,更糟糕的是,...
恩 , 计时器 就一个setInterval 或 setTimeout 即可实现 ,代码不会超过十行! 但是不防抱着没事找事的心态,来写个能复用的计时器 1.能倒计时 也能顺计时 2.复位、暂停、停止,启动功能 //计时器 window.timer =...
计时器对于图片轮播和倒计时之类的与时间相关的项目有着很大的联系,它是实现这些的核心语法,如何一次深刻理解js计时器?往下看你就知道,有惊喜哦! js计时器有两种,一种为延时后单次的执行,另一种为延时多次...