Ereignisorientierte Programmierung
Die ereignisorientierte Programmierung (engl. event-driven programming) ist ein Programmierparadigma, das auf der Idee beruht, dass bestimmte Teile eines Programms nur dann und genau dann ausgeführt werden, wenn ein bestimmtes äußeres Ereignis (engl. event) eintritt. Dieses Ereignis kann vom Benutzy oder von einer anderen Programmkomponente ausgelöst werden.
Visuelle Programmierung
Viele visuelle Programmiersprachen sind ereignisorientiert konstruiert. Ein typisches Beispiel ist Scratch mit Ereignissen wie Wenn die grüne Flagge angeklickt
, wenn Taste [Leertaste v] gedrückt wird
oder wenn ich als Klon entstehe
. Jeglicher Programmcode, der ausgeführt werden soll, muss an einen solchen Ereignisblock angehängt sein, ansonsten wird er beim Ablauf des Programms ignoriert. Diese Blöcke haben typischerweise eine halbrunde Form aufgesetzt.
Auch andere blockbasierte Programmierumgebungen basieren auf diesem Konzept: in MakeCode, mit dem etwa der Calliope mini und der microBit programmiert werden können, sind diese Blöcke etwa C-förmig. Ähnliches gilt für den AppInventor, in dem Ereignisblöcke in der Regel ockerfarben sind. Im AppInventor werden Ereignisse in der Regel von den sichtbaren und unsichtbaren Komponenten der App ausgelöst, also von den einzelnen Bildschirmen, sichtbaren GUI]-Komponenten wie Buttons oder Auswahlfeldern, aber auch von unsichtbaren Komponenten wie dem Lagesensor oder einer Datenbank.
Textuelle Programmierung
JavaScript
Die Web-Programmierung mit HTML und JavaScript ist grundlegend ereignisorientiert aufgebaut: Jede Aktion in JavaScript kann und sollte von einem Ereignis ausgelöst werden. Schon in HTML kann jedes Element mit Ereignis-Attributen versehen werden, mit denen festgelegt wird, welche JavaScript-Anweisungen ausgeführt werden sollen, wenn das entsprechende Ereignis eintritt.
Attribut | Wird ausgelöst, wenn… | Beispiel |
---|---|---|
onclick
|
… das Element angeklickt wird. | <button onclick="alert('Tada!')"
onmouseover="this.innerText='Klick mich!'"
onmouseout="this.innerText='Tada!'">
Tada!
</button>
|
oninput
|
… etwas in das Element (z.B. ein Textfeld) eingegeben wird |
Dieser Abschnitt wird gerade von Sn überarbeitet