Js setTimeout,clearTimeout,setInterval,clearInteral详解「终于解决」

Js setTimeout,clearTimeout,setInterval,clearInteral详解「终于解决」设置定时器,在一段时间之后执行指定的代码,setTimeout与setInterval的区别在于setTimeout函数指定的代码仅执行一次方法一:window.setTimeout(“alert(‘ok’)”,5000);方法二:window.setTimeout(function(){  alert(“Ok”);},5000);方法三:

大家好,欢迎来到IT知识分享网。

setTimeout:

设置定时器,在一段时间之后执行指定的代码,setTimeout与setInterval的区别在于setTimeout函数指定的代码仅执行一次

方法一:

window.setTimeout("alert('ok')",5000);

方法二:

window.setTimeout(function()
{
   alert("Ok");
}, 5000);

方法三:

function sayHelloWorld()
{
   alert("ok");
}
window.setTimeout(sayHelloWorld, 5000);

clearTimeout:

清除setTimeout函数设置的定时器

function sayHelloWorld()
{
   alert("ok");
}
var tt = window.setTimeout(sayHelloWorld, 5000);
window.clearTimeout(tt);

setTimeout,clearTimeout:设置暂停

使用window对象的setTimeout()方法设置暂停。该方法接受两个参数,要执行的代码和在执行它之前要等待的毫秒数(1/1000秒)。第一个参数可以是代码串(与eval()函数的参数相同),也可以是函数指针。例如,下面的代码都在1秒钟后显示一条警告:

setTimeout("alert('Hello World!')",1000);
setTimeout(function() { alert('Hello World!'); },1000);

当然,还可以引用以前定义的函数:

function sayHelloWorld(){ 
    alert("Hello World!"); 
}
setTimeout(sayHelloWorld,1000);

调用setTimeout()时,它创建一个数字暂停ID,与操作系统中的进程ID相似。暂停ID本质上是要延迟的进程ID,再调用 setTimeout()后,就不应该再执行它的代码。要取消还未执行的暂停,可调用clearTimeout()方法,并将暂停ID传递给它:

var iTimeoutId = setTimeout("alert('Hello World!')",1000);
alert(iTimeoutId);
clearTimeout(iTimeoutId);

其中,iTimeoutId 是一串数字,例如上述代码打出的iTimeoutId。

你也许会问:“为什么要定义暂停,又在执行它之前将其取消呢?”请 考虑在大多数应用程序中可见的工具提示。当把鼠标移动到一个按钮上时,停留一会,等待出 现黄色的文本框,提示该按钮的功能。如果只是短暂的把鼠标该按钮上,然后很快将其移动到另一个按钮上,那么第一个按钮的工具提示就不会显示,这就是要在执 行暂停代码前取消它的原因。因为你在执行代码前只想等待指定的时间量。如果用户的操作产生了不同的结果,则要取消该暂停

setInterval:

设置时间间隔,时间间隔与暂停的运行方式相似,只是它无限此地每隔指定的时间段就重复执行一次指定的代码。可调用setInterval()方法设置时间间隔,它的参数与setTimeout()相同,是要执行的代码和每次执行之间等待的毫秒数

方法一:

window.setInterval("alert('ok')",5000);

方法二:

window.setInterval(function()
{
   alert("Ok");
}, 5000);

方法三:

function sayHelloWorld()
{
   alert("ok");
}
window.setInterval(sayHelloWorld, 5000);

clearInterval:

清除setInterval函数设置的时间间隔

function sayHelloWorld()
{
   alert("ok");
}
var tt = window.setInterval(sayHelloWorld, 5000);
window.clearInterval(tt);

setInterval,clearInterval设置时间间隔

setInterval()方法也创建时间间隔ID,以标识要执行的代码。clearInterval()方法可 用这个ID阻止再次执行该代码。显然。这一点在使用时间间隔时更重要,因为如果不取消时间间隔,就会一直执行它,直到页面被卸载为止。下面是时间间隔用法的一个常见示例:

var iNum = 0;
var iMax = 100;
var iIntervalId = null;
function incNum(){ 
    iNum++;
    if(iNum == iMax){
        clearInterval(iIntervalId);
    }
}

iIntervalId = setInterval(incNum, 500);

在这段代码中,每隔500毫秒就对数字iNum进行一次增量运算,直到它达到最大值(iMax), 此时该时间间隔将被清除。也可以用暂停实现该操作,这样即不必跟踪时间间隔的ID,代码如下:

var iNum = 0;
var iMax = 100;
function incNum(){ 
    iNum++;
    if(iNum != iMax){
        setTimeout(incNum,500); 
    } 
}

setTimeout(incNum,500);

这段代码使用链接暂停,即setTimeout()执行的代码页调用了setTimeout()。如果在执行过增量运算后,iNum不等于 iMax,就调用setTimeout()方法。不必跟踪暂停ID,也不必清除它,因为代码执行后,将销毁暂停ID。

clearInterval() 方法可取消由 setInterval() 设置的 timeout。

clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。

实例

下面这个例子将每隔 50 毫秒调用 clock() 函数。您也可以使用一个按钮来停止这个 clock:

<input type="text" id="clock" size="35" />
<script language=javascript>
var int=self.setInterval("clock()",50)
function clock() {
    var t=new Date()
    document.getElementById("clock").value=t
}
</script>
<button οnclick="int=window.clearInterval(int)">Stop interval</button>

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21135.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信