JS中setTimeout()和 interval()方法的用法
JS中setTimeout()方法的用法
settimeout(表达式,延迟时间); 单位:ms(毫秒);1s=1000ms;
setinterval(表达式,交互时间); 单位:ms(毫秒);1s=1000ms;
window.settimeout()
在执行时,它从载入后延迟指定的时间去执行一个表达式或者是函数;仅执行一次;和window.cleartimeout一起使用.
window.setinterval()
在执行时,它从载入页面后每隔指定的时间执行一个表达式或者是函数;(功能类似于递归函数);和window.clearinterval一起使用.
1,基本用法:
执行一段代码: var i=0;
settimeout("i+=1;alert(i)",1000);
执行一个函数:
var i=0;
settimeout(function(){i+=1;alert(i);},1000);
//比较上面的两种方法的不同。
下面再来一个执行函数的:
var i=0;
function test(){
i+=1;
alert(i);
}
settimeout("test()",1000);
也可以这样:
settimeout(test,1000);
总结:
settimeout的原型是这样的:
itimerid = window.settimeout(vcode, imilliseconds [, slanguage])
settimeout有两种形式
settimeout(code,interval)
settimeout(func,interval,args)
其中code是一个字符串
func是一个函数.
注重"函数"的意义,是一个表达式,而不是一个语句.
比如你想周期性执行一个函数
function a(){
//...
}
可写为
setinterval("a()",1000)
或
setinterval(a,1000)
这里注重第二种形式中,是a,不要写成a(),切记!!!
展开来说,不管你这里写的是什么,假如是一个变量,一定是一个指向某函数的变量;假如是个函数,那它的返回值就 要是个函数
2,用settimeout实现setinterval的功能
思路很简单,就是在一个函数中调用不停执行自己,有点像递归
var i=0;
function xilou(){
i+=1;
if(i>10){alert(i);return;}
settimeout("xilou()",1000);
//用这个也可以
//settimeout(xilou,1000);
}
window.setTimeout(func,delay);
func,代表所要执行的函数或代码字符串。
delay,延时参数,单位为毫秒,一秒=1000毫秒。
func中传递的函数或语句有变量输入时,变量的取值以延时后的执行时段时的取值为准,不以代码执行时段的值为准。例如:
代码:
for(var i=1;i<=50;i++)
{
window.setTimeout("[xss_clean](i)",1000);
}
这样写的意义是在程序执行完1秒后打印50个i,此时程序已执行完,i的取值为"51";
如果要是程序每隔1秒打印一个数,则程序要改写为
代码:
for(var i=1;i<=50;i++)
{
window.setTimeout("[xss_clean]("+i+")",i*1000);
}
#Javascr