DOM-Scripting - Vor- und Nachteile
1. Die Vorteile
- Man muss sowohl in statischen Seiten als auch in Templates die Event-Handler nicht mehr setzen
- Inhalt und JavaScript-Logik sind strikt von einander getrennt
- Änderungen können an zentraler Stelle vorgenommen werden
- Programmierer und Webdesigner arbeiten jeweils nur an ihren Dateien und müssen nicht im Code anderer Leute rumfuckeln
Zum letzten Punkt
... möchte ich noch etwas sagen. Denn wer noch nie in einer Internetagentur gearbeitet hat, wird das vielleicht nicht verstehen. Sehr häufig gibt es da eine strikte Aufgabentrennung. Die Webdesigner, oder wie immer die heißen mögen, konzentrieren sich auf HTML und CSS. Nicht mehr und nicht weniger. Und die Webentwickler sorgen dann für die Programmierung. Bei der klassischen Webentwicklung kommt man sich dann schon mal gerne in die Quere. Das wird durch das DOM-Scripting vermieden, denn es gibt eine strikte Trennung von HTML und JavaScript.
Ein Beispiel
Nehmen wir mal an, wir haben ein Formular mit zig select
-Elementen, bei denen nach jeder Änderung der Auswahl eine Aktion
ausgelöst werden soll. Anstelle von onchange
-Handlern bei jedem gottverdammten select
reichen beim
DOM-Scripting ein paar Zeilen Code völlig aus.
var selects = document.formularname.getElementsByTagName('select');
for (var i = 0; i < selects.length; i++)
{
selects[i].onchange = function ()
{
// weiterer Code
}
}
2. Nachteile
- Es kann zu Caching-Problemen kommen. Insbesondere wenn dynamisch erzeugte Templates angepasst werden.
- Die HTML-Elemente müssen unter Umständen eindeutig ausgezeichnet sein. Bei einer Umstellung auf das DOM-Scripting kann das zu einem erheblichen Mehraufwand führen.
- HTML-Elemente können manchmal nur über große Umwege angesteuert werden.
- Bereits existierende Event-Handler innerhalb von HTML-Seiten werden unter Umständen einfach überschrieben.
Das Caching-Problem
... ist leider das gravierendste. Die sicherste Maßnahme wäre in so einem Fall, den Aufruf der JavaScript-Datei über PHP mit einem Parameter zu versehen.
3. Mein Tipp
Wenn man sich der Nachteile bewusst ist und sich gut in der DOM-Manipulation auskennt, so ist diese Art der Programmierung ein echter Segen. Besonders die Wartung der Scripte und HTML-Seiten/Templates ist mit einem deutlich geringeren Aufwand verbunden. Also befasst euch intensiv damit.
Außerdem ist mittlerweile ein entsprechendes Tutorial zu dem Thema (insbesondere Event-Listening) erschienen. Eine erste praktische Einführung findet ihr hier.