「駑馬十駕」 IT系情報を中心に調べた事をコツコツ綴っています。

クライアントサイドのJavaScriptではsetTimeout関数を使用する場面が度々あります。その中でsetTimeout関数の第2引数へ0が指定されている事があります。この「0」(0ms)がどういう意図で使用されているのかメモしておきます。
基本的にsetTimeout関数は主に以下の2通りの用途で使用されます。第2引数へ0を指定する場合は2の用途で使用されます。

setTimeout関数の用途

  1. 指定時間後に関数を実行する場合
  2. イベントハンドラ内の処理が確実に完了してから処理を実行したい場合

HTMLサンプル

JavaScriptサンプル

※イベントハンドラはjQueryで記載しています。

    以下のサンプルではclickイベント内の処理が全て完了した後に、setTimeout関数内の処理が実行される事を保証してくれます。
    今回は簡単に説明するため処理内容は「console.log」しか使用していませんが、大量のDOM要素を取得する場合など処理に時間が掛かるケースや処理が煩雑になっていて実行順序が把握しにくいソースをメンテする際などで重宝されるテクニックの一つです。

JavaScriptサンプルの実行結果「コンソール」

Ads by Google

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">