setTimeout和setInterval的区分

虽然网上有许多二者区分的文章,然则常常搞混了,好记性不如烂笔头,纪录一下。
语法:

setTimeout(code,millisec);
setInterval(code,millisec[,"lang"])

它们都有两个参数,一个是将要实行的代码字符串,另有一个是以毫秒为单元的时候距离,当过了谁人时候段以后就将实行那段代码。
这两个函数的区分就在于,setInterval在实行完一次代码以后,经过了谁人牢固的时候距离,它还会自动反复实行代码,而setTimeout只实行一次那段代码。
每5秒alert一次时候

var showTimes=setInterval("showTime()", 5000);
function showTime()
{
    var today = new Date();
    alert("The time is: " + today.toString());
}

setTimeout也能够完成,代码以下:

var showTimes=null;
showTime();
function showTime()
{
    var today = new Date();
    alert("The time is: " + today.toString());
    showTimes=setTimeout("showTime()", 5000);
}

如许写是否是看起来没有什么区分,然则setTimeout要领不会每隔5秒钟就实行一次showTime函数,它是在每次挪用setTimeout后过5秒钟再去实行showTime函数。这意味着假如showTime函数的主体部份须要1秒钟实行完,那末全部函数则要每6秒钟才实行一次。而setInterval却没有被本身所挪用的函数所约束,它只是简朴地每隔肯定时候就反复实行一次谁人函数。

所以这两个函数需依据差别的情形去运用,假如须要在每隔一个牢固的时候距离后就精确地实行某行动,那末最好运用setInterval,而假如不想因为一连挪用发生相互滋扰的题目,尤其是每次函数的挪用须要沉重的盘算以及很长的处置惩罚时候,那末最好运用setTimeout。

setInterval和setTimeout都返回定时器对象标识符,用于clearInterval和clearTimeout挪用
eg:

clearTimeout(showTimes) //消灭已设置的setTimeout对象
clearInterval(showTimes) //消灭已设置的setInterval对象
    原文作者:泽浩沉
    原文地址: https://segmentfault.com/a/1190000007685252
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞