javascript中setInterval与setTimeout用法介绍
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
clearInterval() 方法可以取消该周期性的方法调用。
当setInterval调用执行完毕时,它将返回一个timer ID,将来便可以利用该值对计时器进行
访问,如果将该ID传递给clearInterval,便可以终止那段被调用的过程代码的执行了.
js setInterval()用法
倒计时实例
代码如下 | 复制代码 |
<script language="javascript"> var value=Number(document.all['time'].value); function change(){ var value=Number(document.all['time'].value);
|
js clearInterval() 方法
setTimeout()在js类中的使用方法
setTimeout (表达式,延时时间)
setTimeout(表达式,交互时间)
延时时间/交互时间是以豪秒为单位的(1000ms=1s)
setTimeout 在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次
setTimeout 在执行时,它从载入后,每隔指定的时间就执行一次表达式
1,基本用法:
执行一段代码:
代码如下 | 复制代码 |
var i=0; setTimeout("i+=1;alert(i)",1000); 执行一个函数: var i=0; setTimeout(function(){i+=1;alert(i);},1000); |
//注意比较上面的两种方法的不同。
下面再来一个执行函数的:
代码如下 | 复制代码 |
var i=0; 总结: setTimeout(code,interval)
|
其中code是一个字符串
func是一个函数.
注意"函数"的意义,是一个表达式,而不是一个语句.
比如你想周期性执行一个函数
代码如下 | 复制代码 |
function a(){ //... } 可写为 setTimeout("a()",1000) 或 setTimeout(a,1000) |
这里注意第二种形式中,是a,不要写成a(),切记!!!
setInterval、setTimeout不能传递带参数的函数的解决方案
在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,
这就需要想方法解决。
一、采用字符串形式:——(缺陷)参数不能被周期性改变
setInterval("foo(id)",1000);
二、匿名函数包装 (推荐)
代码如下 | 复制代码 |
window.setInterval(function() |
这样就可以周期性执行foo(id)这个函数,而且把变量id传递进去;
三、定义返回无参函数的函数
代码如下 | 复制代码 |
function foo(id) |
这里定义了一个函数_foo,用于接收一个参数,并返回一个不带参数的函数,在这个函数内部使用了外部函数的参数,从而对其调用,不需要使用参数。
在 window. setInterval函数中,使用_foo(id)来返回一个不带参数的函数句柄,从而实现了参数传递的功能。
四、修改setInterval
代码如下 | 复制代码 |
function foo(id) |
以上的所有方法也适合setTimeout。
补充:网页制作,js教程