欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

20180904 定时器setTimeout和setInterval回调问题

程序员文章站 2022-04-18 13:20:16
引用: setTimeout和setInterval两者的区别 setTimeout和setInterval的优缺点 setTimeout和setInterval详解 两者的作用都是在定时多少毫秒后回调(函数),不同在于 1. 执行次数,setTimeout在一个固定时间后回调一次函数。而setTi ......

引用:

settimeout和setinterval两者的区别

settimeout和setinterval的优缺点

settimeout和setinterval详解

 

两者的作用都是在定时多少毫秒后回调(函数),不同在于

1. 执行次数,settimeout在一个固定时间后回调一次函数。而settimeout可以循环回调

  e.g. 1) 定义变量初始值为0,当定时器timer使用settimeout回调时,此时变量结果为2(在页面调用一次函数后settimeout回调一次函数)。

 1 <body onload="myfunction()">
 2     <p id="demo"></p>
 3     <script>
 4         var i = 0;
 5         function myfunction()
 6         {
 7             i++;
 8             document.getelementbyid("demo").innerhtml = i;
 9             
10         }
11         var timer = settimeout(function(){myfunction()},500);
12         
13     </script>
14 </body>

  e.g. 2) 同样定义变量初始值为0,当定时器timer使用setinterval回调时,此时变量呈现每0.5秒加1的计时效果。

 1 <body onload="myfunction()">
 2     <p id="demo"></p>
 3     <script>
 4         var i = 0;
 5         function myfunction()
 6         {
 7             i++;
 8             document.getelementbyid("demo").innerhtml = i;
 9             
10         }
11         var timer = setinterval(function(){myfunction()},500);
12         
13     </script>
14 </body>

  e.g. 3) 如果把settimeout计时器写入到函数中,这时也能达到上述第二例的效果(此方法会导致函数运行的内存负担增加,不推荐)

<body onload="myfunction()">
    <p id="demo"></p>
    <script>
        var i = 0;
        function myfunction()
        {
            i++;
            document.getelementbyid("demo").innerhtml = i;
            var timer = settimeout(function(){myfunction()},500);
        }
    </script>
</body>

 

今天就先写到这儿吧