© Excellent backgrounds/Shutterstock.com
Java Magazin
Integration von JavaScript

Ein Chaos vermeiden

Die wartbare Integration von JavaScript in serverseitig getriebene Webanwendungen stellt eine große Herausforderung dar. Dazu existiert bisher kein standardisierter Weg. Bislang greifen viele auf Inline-Scripting zurück, was oft zu Nachteilen führt. Dieser Artikel zeigt, wie JavaScript und JSF sauber zusammengeführt werden können.

Sven Kölpin


Video: Oberflächen mit Tiefgang

Die Verwendung von JavaScript ist bei der Entwicklung von Webanwendungen nicht mehr wegzudenken. Um die Wartbarkeit einer Webapplikation auch noch bei einem hohen JavaScript-Anteil zu garantieren, ist eine strikte Codeorganisation im Frontend von großer Wichtigkeit. Die Erfahrung zeigt jedoch, dass dies bei JSF nur schwierig zu erreichen ist. Der Grund dafür liegt im deklarativen und serverseitigen Ansatz des Frameworks, bei dem die Kapselung clientseitiger Logik in XML-Tags einer direkten Verwendung von JavaScript vorgezogen wird (vgl. Client Behaviors).

Es existiert demzufolge bisher kein standardisierter Weg für die unmittelbare Integration von eigenem JavaScript-Code in JSF-Komponenten. Ganz im Gegenteil: Schaut man in die aktuelle JSF-Spezifikation, so scheint diese die Möglichkeit der Interaktion zwischen JSF und JavaScript, mit Ausnahme der für die AJAX-Funktionalität benötigten eigenen JavaScript-Bibliothek, vollständig zu ignorieren. Deshalb wird bei der Verbindung von JavaScript mit JSF in den meisten Fällen einfach Inline-Scripting, also das direkte Einbetten von JavaScript-Code im HTML, verwendet. Eine häufige Folge dieses Ansatzes ist schwierig zu wartender „Spaghetticode“, der an die früheren JSP-Zeiten erinnert, mit dem Unterschied, dass nun JavaScript anstatt Java mit HTML vermischt wird.

Separation of structure and behavior

Unter dem Oberbegriff „unobtrusive JavaScript“ [1] werden seit einigen Jahren Paradigmen für den Einsatz von JavaScript in Webanwendungen zusammengefasst. Eines der Hauptprinzipien dieser Sammlung betrifft die strikte Trennung von JavaScript und HTML („Separa­tion of structure and behavior“).

Das Trennen von Markup und Scripting hat viele Vorteile. Aus dem Blickwinkel der Arbeitsorganisation betrachtet, bietet sich der Nutzen einer klaren Aufgabentrennung. Webdesigner erstellen das Markup und Design, während Webentwickler die nötige GUI-Logik in eigenen JavaScript-Dateien implementieren können.

Der größte Vorteil der Trennung ergibt sich aber in erster Linie aus der erzwungenen Codeorganisation: Inline-Scripting macht Projekte auf Dauer unwartbar, weil es keine eindeutigen Anlaufpunkte für clientseitige Logik und Module gibt. Vor allem mit wachsender Codebasis führt Inline-Scripting häufig zu einer Verletzung vieler Grundprinzipien der modernen Softwareentwicklung (z. B. Wiederverwendbarkeit (DRY) oder Separation of Concerns). Des Weiteren erweist sich die Fehlersuche mit den im Bro...

Java Magazin
Integration von JavaScript

Ein Chaos vermeiden

Die wartbare Integration von JavaScript in serverseitig getriebene Webanwendungen stellt eine große Herausforderung dar. Dazu existiert bisher kein standardisierter Weg. Bislang greifen viele auf Inline-Scripting zurück, was oft zu Nachteilen führt. Dieser Artikel zeigt, wie JavaScript und JSF sauber zusammengeführt werden können.

Sven Kölpin


Video: Oberflächen mit Tiefgang

Die Verwendung von JavaScript ist bei der Entwicklung von Webanwendungen nicht mehr wegzudenken. Um die Wartbarkeit einer Webapplikation auch noch bei einem hohen JavaScript-Anteil zu garantieren, ist eine strikte Codeorganisation im Frontend von großer Wichtigkeit. Die Erfahrung zeigt jedoch, dass dies bei JSF nur schwierig zu erreichen ist. Der Grund dafür liegt im deklarativen und serverseitigen Ansatz des Frameworks, bei dem die Kapselung clientseitiger Logik in XML-Tags einer direkten Verwendung von JavaScript vorgezogen wird (vgl. Client Behaviors).

Es existiert demzufolge bisher kein standardisierter Weg für die unmittelbare Integration von eigenem JavaScript-Code in JSF-Komponenten. Ganz im Gegenteil: Schaut man in die aktuelle JSF-Spezifikation, so scheint diese die Möglichkeit der Interaktion zwischen JSF und JavaScript, mit Ausnahme der für die AJAX-Funktionalität benötigten eigenen JavaScript-Bibliothek, vollständig zu ignorieren. Deshalb wird bei der Verbindung von JavaScript mit JSF in den meisten Fällen einfach Inline-Scripting, also das direkte Einbetten von JavaScript-Code im HTML, verwendet. Eine häufige Folge dieses Ansatzes ist schwierig zu wartender „Spaghetticode“, der an die früheren JSP-Zeiten erinnert, mit dem Unterschied, dass nun JavaScript anstatt Java mit HTML vermischt wird.

Separation of structure and behavior

Unter dem Oberbegriff „unobtrusive JavaScript“ [1] werden seit einigen Jahren Paradigmen für den Einsatz von JavaScript in Webanwendungen zusammengefasst. Eines der Hauptprinzipien dieser Sammlung betrifft die strikte Trennung von JavaScript und HTML („Separa­tion of structure and behavior“).

Das Trennen von Markup und Scripting hat viele Vorteile. Aus dem Blickwinkel der Arbeitsorganisation betrachtet, bietet sich der Nutzen einer klaren Aufgabentrennung. Webdesigner erstellen das Markup und Design, während Webentwickler die nötige GUI-Logik in eigenen JavaScript-Dateien implementieren können.

Der größte Vorteil der Trennung ergibt sich aber in erster Linie aus der erzwungenen Codeorganisation: Inline-Scripting macht Projekte auf Dauer unwartbar, weil es keine eindeutigen Anlaufpunkte für clientseitige Logik und Module gibt. Vor allem mit wachsender Codebasis führt Inline-Scripting häufig zu einer Verletzung vieler Grundprinzipien der modernen Softwareentwicklung (z. B. Wiederverwendbarkeit (DRY) oder Separation of Concerns). Des Weiteren erweist sich die Fehlersuche mit den im Bro...

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