© Sammby/Shutterstock.com
PHP Magazin
Teil 2: Universelle Ereignisbehandlung mit Kotlin

It’s ready when it’s done

Jede Webseite enthält Elemente, die bei der Interaktion mit dem Benutzer Ereignisse auslösen. Ein Ereignis kann auftreten, wenn ein Link oder ein Button der Seite angeklickt wird, ein Haken, um AGBs zu akzeptieren, gesetzt oder ein Textfeld ausgefüllt wird. Im zweiten Teil unserer Artikelserie untersuchen wir das Auslösen von Ereignissen auf einer Seite und ihre Behandlung mittels Kotlin.

Thomas Schröter


ArtikelserieTeil 1: Dynamische Webseiten mit PHP und KotlinTeil 2: Universelle Ereignisbehandlung mit Kotlin

Ein ausgefülltes Formular zu validieren und den Inhalt an den Server zu senden, ist eine der häufigsten Routineaufgaben jedes Onlineentwicklers. Mit Kotlin können all diese Ereignisse komfortabel behandelt werden, ohne zwangsweise einen HTTP-POST/GET-Server-Round-Trip zu initiieren. Konsequenterweise lassen sich sogar Aufrufe an Server weitestgehend minimieren, da Teile der Logik im Client, also im Browser des Anwenders, laufen und die Last auf dem Server signifikant verringert werden kann.

Ganz schön ereignisreich

In Listing 1 wird der PHP-Seite ein Inputelement vom Typ Button hinzugefügt, in der zur Behandlung von Klicks die Funktion kt.trigger(this) registriert ist. Zur Anzahl und Art der Eventparameter habe ich schon viele Diskussionen gelesen und doppelt so viele Meinungen gehört. Letztlich finde ich die Übergabe des ereignisauslösenden Objekts selbst, also hier des Inputelements this, immer noch am sinnvollsten. Somit ist der Event Handler in der Lage, auf alle Eigenschaften des Ereignisobjekts zugreifen zu können und zu entscheiden, was damit anzufangen ist. Natürlich können auch beliebige andere Parameter übergeben werden, wenn Sie das für sinnvoll erachten. Wichtig ist allerdings, sich auf ein einheitliches Modell zu beschränken, um im Projekt die Konsistenz zu wahren.

Zur Erinnerung: Das Präfix kt. der trigger-Funktion ist zwingend erforderlich; es verweist auf den Namen des js-Moduls, das wir als Compileroutput definiert haben [1].

Listing 1: Aufruf zu Kotlin aus Klickevent

 

...where are thou?

    

In Listing 2 wird der Kotlin-Quelltext um die neue Funktion trigger(...) ergänzt. Hier finden sich zwei Besonderheiten, die für die Funktion unseres Beispiels essenziell sind. Da aus dem Kontext der Webseite, also dem DOM im Browser, ein Aufruf nach Kotlin erfolgt, wird eine sogenannte Annotation benötigt. @JsName("trigger") exportiert unsere Funktion trigger(...) in die Script Engine des Browsers und macht sie vom DOM aufrufbar. Dabei müssen die Bezeichnungen d...

PHP Magazin
Teil 2: Universelle Ereignisbehandlung mit Kotlin

It’s ready when it’s done

Jede Webseite enthält Elemente, die bei der Interaktion mit dem Benutzer Ereignisse auslösen. Ein Ereignis kann auftreten, wenn ein Link oder ein Button der Seite angeklickt wird, ein Haken, um AGBs zu akzeptieren, gesetzt oder ein Textfeld ausgefüllt wird. Im zweiten Teil unserer Artikelserie untersuchen wir das Auslösen von Ereignissen auf einer Seite und ihre Behandlung mittels Kotlin.

Thomas Schröter


ArtikelserieTeil 1: Dynamische Webseiten mit PHP und KotlinTeil 2: Universelle Ereignisbehandlung mit Kotlin

Ein ausgefülltes Formular zu validieren und den Inhalt an den Server zu senden, ist eine der häufigsten Routineaufgaben jedes Onlineentwicklers. Mit Kotlin können all diese Ereignisse komfortabel behandelt werden, ohne zwangsweise einen HTTP-POST/GET-Server-Round-Trip zu initiieren. Konsequenterweise lassen sich sogar Aufrufe an Server weitestgehend minimieren, da Teile der Logik im Client, also im Browser des Anwenders, laufen und die Last auf dem Server signifikant verringert werden kann.

Ganz schön ereignisreich

In Listing 1 wird der PHP-Seite ein Inputelement vom Typ Button hinzugefügt, in der zur Behandlung von Klicks die Funktion kt.trigger(this) registriert ist. Zur Anzahl und Art der Eventparameter habe ich schon viele Diskussionen gelesen und doppelt so viele Meinungen gehört. Letztlich finde ich die Übergabe des ereignisauslösenden Objekts selbst, also hier des Inputelements this, immer noch am sinnvollsten. Somit ist der Event Handler in der Lage, auf alle Eigenschaften des Ereignisobjekts zugreifen zu können und zu entscheiden, was damit anzufangen ist. Natürlich können auch beliebige andere Parameter übergeben werden, wenn Sie das für sinnvoll erachten. Wichtig ist allerdings, sich auf ein einheitliches Modell zu beschränken, um im Projekt die Konsistenz zu wahren.

Zur Erinnerung: Das Präfix kt. der trigger-Funktion ist zwingend erforderlich; es verweist auf den Namen des js-Moduls, das wir als Compileroutput definiert haben [1].

Listing 1: Aufruf zu Kotlin aus Klickevent

 

...where are thou?

    

In Listing 2 wird der Kotlin-Quelltext um die neue Funktion trigger(...) ergänzt. Hier finden sich zwei Besonderheiten, die für die Funktion unseres Beispiels essenziell sind. Da aus dem Kontext der Webseite, also dem DOM im Browser, ein Aufruf nach Kotlin erfolgt, wird eine sogenannte Annotation benötigt. @JsName("trigger") exportiert unsere Funktion trigger(...) in die Script Engine des Browsers und macht sie vom DOM aufrufbar. Dabei müssen die Bezeichnungen d...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang