WorkerGlobalScope: setInterval() メソッド

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

* Some parts of this feature may have varying levels of support.

メモ: この機能はウェブワーカー内でのみ利用可能です。

setInterval()WorkerGlobalScope インターフェイスのメソッドで、一定の間隔を置いて関数やコードスニペットを繰り返し呼び出します。

このメソッドは、ウィンドウコンテキストでも利用できます。 setInterval() の詳細については、 Window.setInterval() ページをご覧ください。

構文

js
setInterval(code)
setInterval(code, delay)

setInterval(func)
setInterval(func, delay)
setInterval(func, delay, arg1)
setInterval(func, delay, arg1, arg2)
setInterval(func, delay, arg1, arg2, /* …, */ argN)

引数

func

delay ミリ秒が経過するたびに実行する関数です。最初の実行は delay ミリ秒後に行われます。

code

関数の代わりに文字列を含める構文も許容されており、 delay ミリ秒が経過するたびに文字列をコンパイルして実行します。 この構文は推奨しませんeval() の使用にセキュリティ上のリスクがあるのと同じ理由です。

delay 省略可

指定した関数またはコードを実行する前にタイマーが待つべき時間をミリ秒 (1/1000 秒) 単位で指定します。指定されなかった場合の既定値は 0 です。 delay 値で許される範囲についての詳細は、待ち時間の制約をご覧ください。

arg1, …, argN 省略可

タイマーが満了したときに、 func で指定した関数に渡す追加の引数です。

返値

setInterval() メソッドは、呼び出しによって作成されたインターバルタイマーを一意に識別する正の整数(通常は 1 から 2,147,483,647 の範囲)を返します。この識別子は、よく「インターバル ID」と呼ばれ、 clearInterval() に渡すことで、指定した関数の反復実行を停止することができます。

同じグローバル環境(特定のウィンドウやワーカーなど)では、元のタイマーがアクティブである限り、インターバル ID は確実に一意となり、新しいインターバルタイマーには再利用されません。ただし、グローバル環境が異なると、それぞれ独立したインターバル ID のプールが管理されます。

setInterval()setTimeout() は同じ ID プールを共有しており、 clearInterval()clearTimeout() は技術的に入れ替えて使用できることに注意してください。 ただし明確さのために、コードを整備するときは混乱を避けるため、常に一致させるようにするべきです。

メモ: 引数 delay は、符号付き 32 ビット整数に変換されます。 IDL における符号付き整数の定義によって、delay は事実上 2147483647ms、およそ 24.8 日に制限されます。

例については setInterval() を参照してください。

仕様書

Specification
HTML
# dom-setinterval-dev

ブラウザーの互換性

関連情報