iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 26
0
自我挑戰組

「 Nice to meet you , JavaScript . 」- 學習日記 系列 第 26

初探JavaScript - 時間事件(Time Events) - 依設定的時間區間執行程式

JavaScript可以在一個自己設定的時間區間(間隔時間)執行程式,可以為「一次性」的執行或是「重複性」的執行。我們稱之為Time Events(時間事件)。

有以下兩種方法:

  • window.setTimeout(function, milliseconds):一次性執行(window.可省略)

()中的function表示要執行的函式
()中的milliseconds需放入間隔的時間,單位為毫秒(千分之一秒),所以如果是寫1000,則表示1秒後會執行function函式的程式碼。

<範例>按下按鈕,過了2秒後,會執行alertAfter2這個函式:

    <h1>setTimeout的測試,點下面按鈕開始執行</h1>
    <input class='.try' type="button" value="按我">

    <script>
        var tryme = document.querySelector('.try');

        function alertAfter2() {
            alert('Oh yeah ~ I am Coming');
        };
        tryme.onclick = setTimeout(alertAfter2, 2000);
    </script>

執行結果:
https://ithelp.ithome.com.tw/upload/images/20200925/20115106LvV64vfO9A.png

  • 終止setTimeout()執行:

使用window.clearTimeout()來中止setTimeout()的執行,window可省略,

語法:
window.clearTimeout(setTimeout的變數名稱)
()中的參數需是一個「變數名稱」,所以要使用clearTimeout必須先將setTimeout()指定給一個變數。

  • window.setInterval(function, milliseconds):重複性執行 (window.可省略)

()中的function表示要執行的函式
()中的milliseconds需放入間隔的時間,單位為毫秒(千分之一秒),所以如果是寫5000,則表示每隔5秒都會重複的執行function函式的程式碼。

<範例>下面時間三秒後會出現,並且每三秒會改變:

    <h1>使用setInterval,下面時間三秒後會出現,並且每三秒會改變</h1>
    <h2 id='showtime'></h2>

    <script>
        var show = document.querySelector('#showtime');
        var myTimer = setInterval(changeEvery5, 3000);

        function changeEvery5() {
            var today = new Date();
            show.innerHTML = today.toLocaleTimeString();
            //today.toLocaleTimeString() 用來取得指定日期物件中的當地時間,並以字串方式顯示。
        }
    </script>

執行結果:
https://ithelp.ithome.com.tw/upload/images/20200925/20115106PYHl8ikAJg.png

三秒過後的顯示結果:
https://ithelp.ithome.com.tw/upload/images/20200925/20115106Pnw3CFDeat.png

  • 終止setInterval()執行:

使用window.clearInterval()來中止setInterval()的執行,window可省略,

語法:
window.clearInterval(clearInterval的變數名稱)
()中的參數需是一個「變數名稱」,所以要使用clearInterval一樣必須先將setInterval()指定給一個變數。

資料參考來源:w3school.com


上一篇
初探JavaScript - JS 三種彈跳視窗(Popup)的寫法
下一篇
初探JavaScript -什麼是AJAX?
系列文
「 Nice to meet you , JavaScript . 」- 學習日記 30

尚未有邦友留言

立即登入留言