settimeout和setinterval的使用

1. 简介

本篇重点介绍以下知识点:

1)展示如何使用settimeout和setinterval来注册一个函数,并在指定时间调用它;

2)展示如何使用clearInterval来终止setinterval的循环调用;

2. 概念

Settimeout:可以用来注册指定时间之后单次调用的函数。

Setinterval:可以用来注册指定时间之后重复调用的函数。

clearIntervalSettimeout和Setinterval执行后都会返回一个值,将这个值传递给这个函数,在指定时间后终止执行。

3. 综合案例

/**

函数f()在未来的几种调用模式*1.在等待了若干毫秒之后调用f();

*2.若设置了interval参数并没有设置end参数,则对f()进行循环调用;

*3.如果没有设置interval和end,只在若干毫秒后调用f()一次;

*4.只指定f(),表明函数f立即执行

*/

function invoke(f,start,interval,end){

if(!start) start=0;

if(arguments.length<=2)//单次调用模式

setTimeout(f,start);

else{

setTimeout(repeat,start);//start时间后,多次调用f

function repeat(){

var h=setInterval(f,interval);

alert("h:"+h);

if(end) setTimeout(function(){clearInterval(h);},end);//先循环执行f,直到end时间结束。

}

}}

测试

<!-- 标准模式声明 -->

<!DOCTYPE html>  

 <html>

<head>

<style> </style>

<script src="myUtils/publicUtils.js"></script><script>

window.οnlοad=function(){

invoke(f,3000,1000,10000);

alert(111);

}

function f(){

//document.write(1+" ");

console.log(1+" ");

}

function click1(){

alert("dianji");

}

</script>

</head>

<body>

<input type="button" onclick="click1()" value="dianji"></input>

</body></html>

测试后,页面在等待3秒钟后每隔1秒钟输出数字1,并且在输出10秒钟后停止。

注意:这里在输出的同时我点击button按钮,输出“点击”字符串,表明SettimeoutSetinterval这两个函数是异步执行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值