JavaScript タイマーの詳細

JavaScript タイマーの詳細

1. 簡単な紹介

JavaScriptには、 setInterval()setTimeout() 2 つのタイマーがあり、タイマーをキャンセルするメソッドもあります。
これらはすべてwindowオブジェクトであり、呼び出し時にwindowを省略できます。これら 2 つのメソッドはJavaScript仕様には含まれていません。

タイマー メソッドに関連するメソッドは 4 つあります。

方法説明する
間隔の設定定期的に関数を呼び出したり、コードの一部を実行したりします。
クリア間隔setInterval で設定された繰り返しアクションをキャンセルします。
タイムアウトの設定指定された遅延後に関数を呼び出すか、コード スニペットを実行します。
クリアタイムアウトメソッドは、setTimeout() メソッドによって設定されたタイムアウトをキャンセルできます。

注意: setTimeout() は 1 回だけ実行されますが、setInterval() は指定された間隔で定期的に実行されます。

2. 間隔を設定する

2.1 説明

setInterval()メソッドは、指定された期間に従って関数を繰り返し呼び出したり、コード セグメントを実行したりできます。期間の単位はミリ秒です。
setInterval()メソッドがclearInterval()メソッドによって閉じられていない場合、またはページが閉じられている場合は、引き続き呼び出されます。
setInterval には複数のパラメータがあります。
まず、最初のパラメータがコード セグメントの場合、setInterval() メソッドはオプションになります。
2 番目に、最初のパラメータが関数の場合、setInterval() メソッドは複数のパラメータを持つことができます。

timerId = setInterval(func|code, delay, arg1, arg2, ...) とします。


2.2 パラメータ

パラメータ必須/オプション説明する
関数 | コード必須呼び出された関数の後に実行される関数またはコード文字列
遅れ必須コードを実行するまでの所要時間(ミリ秒単位)は空白のままにすることができます。デフォルト値は 0 です。
引数1、引数2...オプション実行された関数に渡されるパラメータ リスト (またはコード文字列) (IE9 以前ではサポートされていません)

注:パラメーター func|code は通常、関数として渡されます。歴史的な理由により、コード文字列を渡すことはサポートされていますが、推奨されません。

2.3 戻り値

戻り値timeoutID 、タイマーの番号を示す正の整数です。この値をclearTimeout()に渡すとタイマーをキャンセルできます。

2.4 使用法

これは、ボタンをクリックして 1 秒ごとに数値を増やす例です。

<p id="表示数"></p>
<button onclick="timer()">クリックすると 1 秒ごとに数字が 1 つずつ増えます</button>

<スクリプト>
  定数 showNum = document.getElementById("showNum");

  let timerId; // タイマーID
  num = 0 とします。

  関数タイマー() {
    タイマーID = setInterval(addNum, 1000);
  }

  関数addNum() {
    showNum.innerText = `${num++}`;
  }

  // タイマーを停止するコードが書かれていません</script>

3.タイムアウトを設定する

3.1 説明

setTimeout()タイマー番号を表す整数を返します。これを使用して後でタイマーをキャンセルできます。
setTimeout()使用すると、一定の間隔が経過するまで関数の実行を延期できます。

timerId = setTimeout(func|code, delay, arg1, arg2, ...) とします。

3.2 パラメータ

setTimeout()のパラメータはsetInterval()のパラメータと同じです。

パラメータ必須/オプション説明する
関数 | コード必須呼び出された関数の後に実行される関数またはコード文字列
遅れ必須コードを実行するまでの所要時間(ミリ秒単位)は空白のままにすることができます。デフォルト値は 0 です。
引数1、引数2...オプション実行された関数に渡されるパラメータ リスト (またはコード文字列) (IE9 以前ではサポートされていません)

注:パラメーター func|code は通常、関数として渡されます。歴史的な理由により、コード文字列を渡すことはサポートされていますが、推奨されません。

3.3 使用法

setTimeout()の使い方はsetInterval()と同じです。

ただし、1 回だけ実行されるsetTimeout()とは異なり、 setInterval()指定された時間に従って定期的に実行されます。

<p id="表示数"></p>
<button onclick="timer()">クリック後、1 秒待つと数字が 1 つ増えます</button>

<スクリプト>
  定数 showNum = document.getElementById("showNum");

  タイマーIDを設定します。
  num = 0 とします。
  数値を追加します。

  関数タイマー() {
    タイマーID = setTimeout(addNum, 1000);
  }

  関数addNum() {
    showNum.innerText = `${num++}`;
  }

</スクリプト>

4. タイマーをキャンセルする

clearInterval()メソッドは、 setInterval()によって設定されたtimerをキャンセルします。
clearTimeout()メソッドは、 setTimeout()によって設定されたtimerをキャンセルします。

使い方は非常に簡単で、キャンセルするタイマーの識別子であるtimeoutIDという 1 つのパラメーターのみを使用します。
この ID は、対応するsetTimeout()またはclearTimeout()呼び出しによって返されます。

間隔をクリアします(間隔ID);
タイムアウトをクリアします(タイムアウトID);


注: setTimeout() と setInterval() は同じ数値プールを共有することに注意してください。技術的には、clearTimeout() と clearInterval() は互換性があります。ただし、混乱を避けるために、キャンセルタイミング機能を混在させないでください。

使い方は簡単です:

関数タイマー() {
  タイマーID = setTimeout(addNum, 1000);
}

clearTimeout(timerId); // コードがこの行まで実行されると、timer によって設定されたタイマーはキャンセルされます。

5. コンソールでタイマーを使用する

ブラウザコンソールでタイマーを使用することもできます

console.time(タイマー名)


name という名前のタイマーを作成して開始します。

注:各タイマーには一意の名前を付ける必要があり、ページ上で同時に実行できるタイマーは最大 10,000 個です。

console.timeEnd(タイマー名)

console.timeEnd(name ) を呼び出すとタイマーが停止し、経過時間がミリ秒単位で出力されます。

console.time(タイマー名);
console.timeEnd(タイマー名);

5.1 使用法

For ループを 99999 回実行するとどれくらい時間がかかるかの例:

console.time(名前);

num; を入力します。
(インデックス = 0、インデックス < 99999、インデックス++) {
  数値++;
}

console.timeEnd(名前);

JavaScript タイマーの詳細に関するこの記事はこれで終わりです。JavaScript タイマーに関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript タイマー原理の詳細な説明
  • JavaScriptタイマーの詳細な説明
  • 期間限定フラッシュセール機能を実現するJavaScriptタイマー
  • 画像のシームレスなスクロールを実現する JavaScript タイマー
  • JavaScript タイマーの種類の概要

<<:  大きな太陽の天気アイコンを純粋な CSS で記述する方法の例

>>:  MySQLクライアントとサーバーのプロトコルの解釈

推薦する

2012年のベストWebデザイン作品レビュー[パート1]

新年の初めに、友人の健康と2013年が素晴らしい年となることを心からお祈りいたします。この記事では、...

Chrome タブバーを実装するための CSS のヒント

今回は、Google Chrome のタブバーのような、特殊な丸い角を持つナビゲーション バーのレイ...

Vueはドラッグアンドドロップを使用して構造ツリーを作成します

この記事の例では、ドラッグアンドドロップを使用して構造ツリーを作成するVueの具体的なコードを共有し...

ES6分解課題の原理と応用

目次配列分割代入オブジェクトの分解代入分割割り当ての適用変数の値の交換関数から複数の値を返すマップ構...

Typescriptの基本構文13個を共有する

目次1. Tsとは何か2. 基本的な文法1. プリミティブデータ型を宣言する2. オブジェクト型を宣...

インデックスを使用して MySQL ORDER BY ステートメントを最適化する方法

テーブルの作成とインデックスの作成 テーブルtbl1を作成( id int ユニーク、sname v...

Centos8.3、dockerデプロイメントspringbootプロジェクトの実際のケース分析

導入現在、k8s は非常に人気があり、それについて学ぶために本を購入しました。しかし、k8s では数...

echarts ワードクラウドチャートを使用した Vue の実践記録

echartsワードクラウドはechartsの拡張版ですhttps://echarts.apache...

テーブル関連の配置とJavascript操作テーブル、tr、td

適切に機能するテーブル プロパティ設定:コードをコピーコードは次のとおりです。 <テーブル セ...

JavaScriptでマクロを使用する方法

言語では、DSL を実装するためにマクロがよく使用されます。マクロを使用すると、開発者は JSX 構...

docker を使用して Kong クラスター操作を構築する

docker コンテナの下に kong クラスターを構築するのは非常に簡単です。公式サイトの紹介も非...

WindowsシステムでPhPStudy MySQLの起動に失敗する問題を解決する

エラーを報告するApache\Nginx サービスは正常に起動しましたが、MySQL は起動に失敗し...

Vue の echarts ツールチップにクリック イベントを追加する詳細な説明

目次必要回避策1. ツールチップを設定する2. hookToolTip変数を定義する3. メソッド内...

動的画像読み込み技術の応用とjquery.lazyloadプラグインの使用例

アプリケーション例ウェブサイト http://www.uhuigou.net画像の動的読み込みは目新...

Dockerに関するよくある質問

Docker はポートを IPv6 にのみマッピングし、IPv4 にはマッピングしません。 dock...