`
lym6520
  • 浏览: 696709 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

setTimeout和setInterval 区别

    博客分类:
  • JS
阅读更多
javascript setTimeout和setInterval 区别

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 是一串数字,例如 38734218

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


setInterval():时间间隔与暂停的运行方式相似,只是它无限此地每隔指定的时间段就重复执行一次指定的代码。可调用setInterval()方法设置时间间隔,它的参数与setTimeout()相同,是要执行的代码和每次执行之间等待的毫秒数。例如:
   
    setInterval("alert('Hello world!')",1000);
    setInterval(function() { alert("Hello world!"); },1000);

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

    setInterval(sayHelloWorld,1000);
    

    此外,与setTimeout()类似,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), 此时该时间间隔将被清除。
分享到:
评论
1 楼 脑袋雷劈的 2009-07-09  
很好,正好用到!
我发现用什么就直接到JE上找,最方便了!!

相关推荐

Global site tag (gtag.js) - Google Analytics