setInterval和setTimeout的区别简单提一下
- setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
- setTimeout() :在指定的毫秒数后调用函数或计算表达式。
setInterval(code,millisec,lang),
setTimeout(code,millisec,lang)
参数 | 描述 |
---|---|
code | 必需。要调用的函数或要执行的代码串。 |
millisec | 必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。 |
lang | 可选。 JScript | VBScript | JavaScript |
需要注意的是在使用setInterval,或setTimeout 指定所要运行的函数,并需要给所运行函数传值时,
尽量不要使用 setInterval(函数名(arg0,arg1),1000)的方式进行传值,因为这样是错误的,它会导致
//js代码运行到此处时,直接执行该 函数名(arg0,arg1) 这个函数,而不会先等待1000毫秒后再次执行,这个问题
//不管是在setInterval或者setTimeout中都是如此,假设你参数传参是没有问题的情况下,如果参数有问题,那肯定直接报错了~~,也或者setInterval会出现定时器执行一次就不会再执行等错误情况
//或者使用 setInterval(”函数名(arg0,arg1)“,1000)的方式进行传值,但尽管使用了“”双引号的
//方式,包含了所要调用的 函数名称 , 但是对于这样的传参方式,也是需要进行拼接的,
//最好的在执行定时器时,定时执行所对应的functin函数的方法则是,采用setInterval或setTimeout方法体的形式进行传参
//如 setTimeout(function(){ 要调用的函数名(arg0,arg1) },1000); 采用这种方法传值,一般都是会没有问题的;setInterval也是如此
一些小例子:setInterval
<html>
<body>
<input type="text" id="clock" /> <script type="text/javascript"> var int=self.setInterval("clock()",1000); function clock() { var d=new Date(); var t=d.toLocaleTimeString(); document.getElementById("clock").value=t; } </script> 此处清除定时器 <button onclick="int=window.clearInterval(int)">停止</button> </body> </html>
setTimeout实现定时不断执行,一般则是方法递归方法的方式实现