每60秒调用一个函数

每60秒调用一个函数

使用setTimeout()可以在指定的时间启动一个函数:

setTimeout(function, 60000);

但是如果我想多次启动这个函数呢?每隔一段时间间隔,我都想执行这个函数(比方说,每60秒一次)。


倚天杖
浏览 468回答 3
3回答

不负相思意

如果您不关心timer可能比间隔时间长,请使用setInterval():setInterval(function, delay)它一次又一次地激发作为第一个参数传入的函数。一个更好的方法是setTimeout连同一个self-executing anonymous职能:(function(){     // do some stuff     setTimeout(arguments.callee, 60000);})();这保证了下一个调用不会在代码执行之前进行。我用arguments.callee在本例中作为函数引用。这是一个更好的方法,给函数一个名称,并调用它在setTimeout因为arguments.callee在ECMAScript 5中被废弃。

慕雪6442864

使用setInterval(function,&nbsp;60000);编辑:(如果你想在时钟启动后停止它)脚本部分<script>var&nbsp;int=self.setInterval(function,&nbsp;60000);</script>和HTML代码<!--&nbsp;Stop&nbsp;Button&nbsp;--><a&nbsp;href="#"&nbsp;onclick="window.clearInterval(int);return&nbsp;false;">Stop</a>

潇湘沐

更好地利用詹迪氏回答实现轮询功能,该功能将轮询每个interval几秒钟后结束timeout几秒钟。function&nbsp;pollFunc(fn,&nbsp;timeout,&nbsp;interval)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;startTime&nbsp;=&nbsp;(new&nbsp;Date()).getTime(); &nbsp;&nbsp;&nbsp;&nbsp;interval&nbsp;=&nbsp;interval&nbsp;||&nbsp;1000; &nbsp;&nbsp;&nbsp;&nbsp;(function&nbsp;p()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fn(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(((new&nbsp;Date).getTime()&nbsp;-&nbsp;startTime&nbsp;)&nbsp;<=&nbsp;timeout)&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(p,&nbsp;interval); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;})();}pollFunc(sendHeartBeat,&nbsp;60000,&nbsp;1000);更新根据注释,更新它以了解传递函数停止轮询的能力:function&nbsp;pollFunc(fn,&nbsp;timeout,&nbsp;interval)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;startTime&nbsp;=&nbsp;(new&nbsp;Date()).getTime(); &nbsp;&nbsp;&nbsp;&nbsp;interval&nbsp;=&nbsp;interval&nbsp;||&nbsp;1000, &nbsp;&nbsp;&nbsp;&nbsp;canPoll&nbsp;=&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;(function&nbsp;p()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canPoll&nbsp;=&nbsp;((new&nbsp;Date).getTime()&nbsp;-&nbsp;startTime&nbsp;)&nbsp;<=&nbsp;timeout; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!fn()&nbsp;&&&nbsp;canPoll)&nbsp;&nbsp;{&nbsp;//&nbsp;ensures&nbsp;the&nbsp;function&nbsp;exucutes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(p,&nbsp;interval); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;})();}pollFunc(sendHeartBeat,&nbsp;60000,&nbsp;1000);function&nbsp;sendHeartBeat(params)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;... &nbsp;&nbsp;&nbsp;&nbsp;... &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(receivedData)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;no&nbsp;need&nbsp;to&nbsp;execute&nbsp;further &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;&nbsp;//&nbsp;or&nbsp;false,&nbsp;change&nbsp;the&nbsp;IIFE&nbsp;inside&nbsp;condition&nbsp;accordingly. &nbsp;&nbsp;&nbsp;&nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript