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クライアントとサーバーのプロトコルの解釈

推薦する

Linux システムファイル共有 samba 設定チュートリアル

目次sambaをアンインストールしてインストールする新しい共有パスを作成し、権限を設定するSamba...

ウェブページのエンコードにおける GB2312、GBK、UTF-8 の違い

まず、GB2312、GBK、UTF-8 はすべて文字エンコーディングであることを理解する必要がありま...

setup+ref+reactive は vue3 の応答性を実装します

セットアップは、結合された API を記述するために使用されます。テンプレートが使用できるようにする...

CMDコマンドを使用してMySqlデータベースを操作する方法の詳細な説明

まず、mysqlサービスを開始および停止します ネットストップmysql ネットスタートMySQL ...

Linux で 1 つのファイルの内容を別のファイルの末尾にコピーする

問題の説明:たとえば、ファイル 11 の内容は次のとおりです。こんにちはファイル22の内容は次のとお...

JavaScriptエンジンV8の実行プロセスの詳細な説明

目次1. V8ソース2. V8サービスターゲット3. V8の初期アーキテクチャIV. V8の初期アー...

LinuxでのDockerのインストールチュートリアル

Docker パッケージは、デフォルトの CentOS-Extras リポジトリにすでに含まれていま...

MySQL セレクトキャッシュメカニズムの使用に関する詳細な説明

MySQL クエリ キャッシュはデフォルトでオンになっています。ある程度、クエリの効果は向上しますが...

Dockerを使用して開発環境を構築する方法を素早く習得します

プラットフォームが成長し続けるにつれて、プロジェクトの研究開発は、開発者向けのさまざまな外部環境、特...

Linuxにgitをインストールする方法

1. はじめにGit は、規模の大小を問わずあらゆるプロジェクトを俊敏かつ効率的に処理するために使用...

CentOS 7 に mysql5.7 の解凍バージョンをインストールするチュートリアル

1. mysqlの圧縮パッケージを/usr/localフォルダに解凍し、名前をmysqlに変更します...

MySQL で中国語を入力するときに発生するエラー 1366 の解決方法

MySQL で中国語を入力すると、次のエラーが発生します。エラー 1366: 1366: 行 1 の...

JavaScript 事前分析、オブジェクトの詳細

目次1. 事前分析1. 変数の事前解析と関数の事前解析1. 変数の事前解析2. 機能事前分析2. 事...

無視されたDOCTYPE記述の分析

doctype もその 1 つです。 <!DOCTYPE HTML PUBLIC "...