20180904 定時器setTimeout和setInterval回調問題

引用:函數

setTimeout和setInterval二者的區別spa

setTimeout和setInterval的優缺點.net

setTimeout和setInterval詳解code

 

二者的做用都是在定時多少毫秒後回調(函數),不一樣在於blog

1. 執行次數,setTimeout在一個固定時間後回調一次函數。而setTimeout能夠循環回調ip

  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的計時效果。get

 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計時器寫入到函數中,這時也能達到上述第二例的效果(此方法會致使函數運行的內存負擔增長,不推薦)io

<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>

 

今天就先寫到這兒吧function

相關文章
相關標籤/搜索