JavaScriptタイマーの詳細な説明

JavaScriptタイマーの詳細な説明

簡単な紹介

JavaScript には、setInterval() と setTimeout() の 2 つのタイマーがあり、それぞれにタイマーをキャンセルするメソッドがあります。

これらはすべてウィンドウ オブジェクトであり、呼び出し時にウィンドウを省略できます。これら 2 つのメソッドは JavaScript 仕様には含まれていません。

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

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

setTimeout()setInterval()の違いは、異なる時間に実行されることです。

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

間隔の設定

説明する

setInterval()メソッドは、指定された期間に従って関数を繰り返し呼び出したり、コード セグメントを実行したりできます。期間の単位はミリ秒です。

setInterval()メソッドがclearInterval()メソッドによって閉じられていない場合、またはページが閉じられている場合は、引き続き呼び出されます。

setInterval には複数のパラメータがあります。

まず、最初のパラメータがコード セグメントの場合、setInterval() メソッドはオプションになります。

2 番目に、最初のパラメータが関数の場合、setInterval() メソッドは複数のパラメータを持つことができます。

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

パラメータ

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

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

戻り値

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

使用法

これは、ボタンをクリックして 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>

タイムアウトの設定

説明する

setTimeout()タイマー番号を表す整数を返します。これを使用して後でタイマーをキャンセルできます。

setTimeout()使用すると、一定の間隔が経過するまで関数の実行を延期できます。

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

パラメータ

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

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

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

使用法:

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++}`;
  }
 </スクリプト>

タイマーをキャンセル

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

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

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

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

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

使い方は簡単

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

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

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

console.time(タイマー名)

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

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

console.timeEnd(タイマー名)

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

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

使用法

for ループを 99999 回繰り返すのにかかる時間の例。

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

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

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

<<:  CSS で 2 つの固定列と 1 つの適応列を実装するいくつかの方法

>>:  HTMLを圧縮しない理由はいくつかある

推薦する

Ubuntu 16.04にJenkinsをインストールするための詳細な手順

1. 前提条件JDKがインストールされましたecho $PATHソフトリンクを作成し、JDKのインス...

Windows 10 64 ビット版に MySQL 5.6.35 をインストールするためのグラフィック チュートリアル

1. MySQL Community Server 5.6.35をダウンロードするダウンロードアドレ...

MySQLの比較演算子正規表現マッチングREGEXPの使用の詳細な説明

1. データを初期化する `test_01` が存在する場合はテーブルを削除します。 テーブル「te...

Win7 インストール MySQL 5.6 チュートリアル図

目次1. ダウンロード2. インストール3. my.ini ファイルを設定する(デフォルトのエンコー...

CSS3 で less のテキストの長い影を実装する

この記事では主に、CSS3 LESS で長いテキストの影を実装する方法を紹介し、皆さんと共有します。...

マインスイーパゲームを実装するための jQuery プラグイン (3)

この記事では、jQueryプラグインを使用してマインスイーパゲームを実装する方法に関する3番目の記事...

Markodwnによるタイトル配置による同期スクロールのアイデアの詳細な説明

序文私が作成中の Markodwn エディターに同期スクロール機能を追加する必要があります。Baid...

CentOS VPS に SSH 経由で MySQL をインストールする方法

yum install mysql-serverと入力します。続行するにはYを押してくださいインスト...

HTML チェックボックスとラジオボタンスタイルの美化の簡単な例

HTML チェックボックスとラジオボタンスタイルの美化の簡単な例チェックボックス: XML/HTML...

Vue.jsはタイムライン機能を実装します

この記事では、タイムライン機能を実装するためのVue.jsの具体的なコードを参考までに共有します。具...

Vue のフィルターの適用シナリオの詳細な説明

filterは通常、特定の値をフィルターするために使用されます。たとえば、フィールドが空だが、フロン...

モバイルデバイスにおける適応レイアウトの問題に関する簡単な説明 (レスポンシブ、rem/em、Js ダイナミクス)

3G の普及により、携帯電話を使ってインターネットにアクセスする人が増えています。モバイル デバイ...

VMware 仮想マシンに Centos7.3 をインストールするチュートリアル図

VMware の準備 CentOS の準備、こちらは CentOS 7.3 CentOS-7-x86...

検証コード干渉を実装する js (動的)

この記事の例では、検証コードの動的干渉を実装するためのjsの具体的なコードを共有しています。具体的な...