javascript 指定した時間後に処理を実行する

javascript 指定した時間後に処理を実行する

javascriptで、setTimeoutを使って、指定した時間後に処理を実行するサンプルコードを記述してます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 103.0.5060.134

setTimeout使い方

setTimeoutを使うと、指定した時間後に処理を実行することが可能です。

setTimeout("関数名", ミリ秒);

実際に、使用してみます。

setTimeout("foo()", 5000);

function foo() {    
  console.log('5秒経過')
}

実行結果をみると、5秒経過した後にコンソールにテキストが表示されていることが確認できます。

setInterval

「setTimeout」の場合だと1度しか実行されませんが「setInterval」を使用すると、指定した間隔で再度実行されます。

setInterval("foo()", 5000);

function foo() {    
  console.log('5秒経過')
}

実行結果

止める場合は「clearInterval」を使用します。

let i = 0;

let s = setInterval("foo()", 1000);

function foo() {    

  console.log('1秒経過')

  i++;

  if(i > 4) clearInterval(s);

}

実行結果

サンプルコード

以下は、
「hoge実行」ボタンをクリックすると、「setTimeout」により3秒後にfoo関数が実行されるだけの
サンプルコードとなります。

※cssには「bootstrap material」を使用してます。

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <title>mebeeサンプル</title>
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons">
  <link rel="stylesheet"
    href="https://unpkg.com/bootstrap-material-design@4.1.1/dist/css/bootstrap-material-design.min.css"
    integrity="sha384-wXznGJNEXNG1NFsbm0ugrLFMQPWswR3lds2VeinahP8N0zJw9VWSopbjv2x7WCvX" crossorigin="anonymous">
</head>
<style>
  .main {
    margin: 0 auto;
    margin-top: 200px;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 25px;
    width: 500px;
  }
</style>
<script>

  function hoge() {
    // 3秒後に実行される
    setTimeout("foo()", 3000);
  }

  //フロントに表示する関数
  function foo() {    
    // 要素を取得
    var obj = document.getElementsByClassName("badge")[0];
    // テキスト表示
    obj.textContent = "3秒経過しました";
  }

</script>

<body>
  <div class="main">

    <h2><span class="badge badge-primary">実行結果</span></h2>    

    <button onclick="hoge()" type="button" class="btn btn-raised btn-secondary">
      hoge実行
    </button>

  </div>
</body>

</html>

fooが3秒後に実行されていることが確認できます。