Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

イベント ハンドラとは? わかりやすく解説

Weblio 辞書 > コンピュータ > IT用語辞典 > イベント ハンドラの意味・解説 

イベントハンドラ

【英】event handler

イベントハンドラとは、JavaScript記述された、マウス動きといった動作操作に対して特定の処理を与えるための命令のことである。

リンクの上マウスポインタ乗った、またはボタンクリックされた、テキストボックス内容変更された、フォーム内容送信されようとする、など、ユーザーが行様々な操作に対して特定の処理を行わせるイベントに応じて適切に設定された処理は、Webページをより動的対話的なものにする。

イベントの発生源となるボタンやリンクは、オブジェクト呼ばれる。イベントハンドラは、そのオブジェクト対応するタグイベント属性の値として記述される。(イベント属性とは、イベントの種類を表す属性のことである)。例えばクリックイベントの場合は、<INPUT TYPE="button">、<A>などの、タグonClick属性の値としてイベントハンドラが記述される

プログラミングのほかの用語一覧
スクリプト言語:  AppleScript  Ajax  アクティブスクリプト  イベントハンドラ  CGI  CPAN  ECMAScript

イベント (プログラミング)

(イベント ハンドラ から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/07/09 23:05 UTC 版)

プログラミングにおけるイベント (: event) は、プログラム内で発生した動作・出来事、またそれらを表現する信号である[1]メッセージあるいはアクション(動作)とも呼ばれる。

イベントの例としてWEBブラウザにおける「クリック」動作、ネットワークリクエストにおける「fetch完了」出来事が挙げられる。動作・出来事そのものではなく、それらをプログラム上で表現し詳細情報を保持しているオブジェクト(イベントオブジェクト)を単純にイベントと呼ぶことが多い。

イベントドリブン

イベントドリブン (イベント駆動型、: event-driven) とは、イベントに応じて選択的にインスタンスへの処理(メソッドの実行)やコンテクストの切り替えを行う方式である。アクションの例としては、キーボードのキーが押される、マウスのボタンがクリックされる、などがある。アクションが発生すると、イベント信号が付帯情報(キー種別やボタン種別などのデータ)とともに発信される。また、アクションを起爆剤としてさらに他のプログラムコードが動かされたりするようにプログラミングすることをイベント駆動型プログラミングと称することが多い。

一般的にGUIアプリケーションソフトウェアのプログラミングでは、イベントの発生を監視しながら待機するイベントループ(メッセージループ)にて、オペレーティングシステムから受け取ったイベント(メッセージ)オブジェクトを、あらかじめ登録されたコールバック関数[2]にディスパッチ(配送)してイベントに応じたユーザー処理(イベントハンドラー)を実行し、再びイベントループに戻るポーリング的な手法が用いられている。

なお、登録されるコールバック関数はそれぞれインタフェースが決まっており、プログラマはインタフェースを除いてこの関数の中身を自由に記述することでイベントを処理することができる。

通常、コールバック処理の登録は関数ポインタデリゲートなどを用いて実現される。Javaではコールバック処理のカスタマイズに、イベントリスナーインタフェースを実装するカスタム派生クラスでのメソッドオーバーライドを利用する[3]。イベントを言語の仕様として組み込んでいるプログラミング言語、たとえばC#では、特定のアクションが発生した場合に呼び出されるイベントハンドラーを簡潔に記述・登録できる。

DOM Events

DOMイベントはWebにおいて発生した動作・出来事である[1][4]。 正格な定義としては、Document Object Model(DOM)で定義されたEventinterfaceを実装するオブジェクトが event と呼ばれる[5]

例として、ウェブブラウザが発火するclick イベントや keydownイベントが挙げられる。またプログラマが任意に発火できるカスタムイベントCustomEvent interfaceの実装)も存在する[6]。これらのイベントを用いることでマウスクリックのような動作(アクション)、ネットワークリクエスト完了のような出来事(イベント)の発生を表現し、イベントに応答した振る舞いを定義できる。

DOM Eventsの特徴は、イベントの伝播がDOM(ウェブブラウザ処理系)によって扱われる点にある。イベントはDOM treeのnodeに対して発行され、treeのrootへ向かって各nodeで処理されながら伝播していく。この伝播はすべてウェブブラウザによって処理されており、その点でウェブブラウザはイベント(メッセージ)処理のためのミドルウェアとして働いているとみなすことができる。

排他制御におけるイベント

WindowsWin32以降)には、「イベント」と呼ばれるカーネルオブジェクトがあり、「Win32イベント」と呼ばれることもある。[7]このオブジェクトは、前述のイベントドリブンとはなんら関係ない。イベントオブジェクトは、そのオブジェクトがシグナル(発信)されることにより、待機状態にあるスレッドを再開させるなど、待機状態にある何らかの処理を起動する目的に使われる。また、プロセス間をまたいでイベントオブジェクトを共有できることから、スレッド間通信のみならずプロセス間通信にも利用される。

Win32イベントはイベント的事象を伝達することに特化しており、待機中スレッドがイベント待ちから解放されたとき、自動的にイベントを非シグナル状態にするといった機能がある。セマフォと似ているが、決定的な違いは、イベントは資源数が常に1であり、また伝達できる情報はシグナル発生のみである点である。

イベントは、各APIごとに次のようなクラスまたは関数を通して提供されている。

  • Windows API - CreateEvent()関数(HANDLE型オブジェクト)
  • ATL/MFC - CEventクラス
  • .NET Framework - System.Threading.AutoResetEventクラス、System.Threading.ManualResetEventクラス

脚注

  1. ^ a b イベントは、あなたがプログラムを書いているシステムで生じた動作、出来事を指します。 MDN web docs - イベントの紹介
  2. ^ Microsoft Windowsでは、ウィンドウごとに登録されるコールバック関数のことをウィンドウプロシージャ (window procedure) と呼ぶ。
  3. ^ イベントドリブン | じっくり学ぶ Java講座 [初心者向け・入門]”. 2023年7月10日閲覧。
  4. ^ Throughout the web platform events are dispatched to objects to signal an occurrence, such as network activity or user interaction. DOM Living Standard - 2.1. Introduction to "DOM Events" 2019-11-25T07:39+09:00閲覧
  5. ^ An Event object is simply named an event. DOM Living Standard - 2.2. Interface Event 2019-11-25T07:43+09:00閲覧.
  6. ^ CustomEvent インターフェイスはどんな目的のアプリケーションからも初期化されるイベントを表現します。 MDN web docs - CustomEvent
  7. ^ カーネルオブジェクト-win32 apps | Microsoft Learn”. 2023年7月10日閲覧。

関連項目



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「イベント ハンドラ」の関連用語

イベント ハンドラのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



イベント ハンドラのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【イベントハンドラ】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのイベント (プログラミング) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS