js函数定时执行

JavaScript011

js函数定时执行,第1张

<script language="JavaScript" type="text/javascript">

//setTimeout后固定时间后执行指定内容,单位毫秒

//写法一

/*

var iID=setTimeout(function(){

alert(iID)

},1000)

*/

//写法二

var iID=setTimeout("clock()",2000)//或者var iID=setTimeout(clock,2000)

function clock(){

alert(iID)

}

clearTimeout(iID)

//setInterval用法与setTimeout相同,只是setTimeout固定时间后执行且只执行一次。setInterval循环每过一段固定时间执行一次。

//每次调用setTimeout或setInterval函数都会产生一个唯一的ID,可以通过clearTimeout或clearInterval函数(这两个函数的参数对应接收一个setTimeout或setInterval返回的ID)暂停setTimeout或setInterval函数,(同一个setInterval循环其返回值不变)

//但是测试clearInterval(iID)可阻止setTimeout,clearTimeout(iID)也可阻止setInterval的继续执行

</script>

JavaScript中可以实现定时器功能的有两个函数——setTimeout和setInterval,二者的不同是setTimeout只执行一次,而setInterval是以指定的时间间隔重复执行。setTimeout可以使用clearTimeout取消,setInterval可以使用clearInterval取消。

有时,我们会用setTimeout(callback,0)将任务推迟一段很短的时间,但是其实通过process.nextTick(callback)来实现会更好,因为Node中的事件循环在一个处理事件队列的循环里运行,每循环一次称为一个“tick”。使用process.nextTick(callback)回调函数会在事件队列内所有事件处理完毕后,会在下次事件循环之前被调用,即进入下个event loop前执行;而setTimeout(callback,0)把回调延迟到后面的某个event loop执行,具体由设置的延时时间和event loop的执行时间决定。

这样可以保证my_async_function函数是顺序执行。