[latex]Mae govannen![/latex]
Weil innerHTML Mist ist, wenn man Code mit mehreren dynamischen Bestandteilen erzeugen will. Man bastelt sich da eine irgendwann völlig unübersichtliche Codewüste aus verketteten Strings und "escaped"-en Zeichenkettenbegrenzern zusammen
Ja, wenn man es schlecht macht. Unübersichtliche Codewüsten kann ich mit innerHTML *oder* DOM machen.
Natürlich. Nur ist es meist aufwendiger, mit innerHTML keine Codewüste zu erzeugen als umgekehrt.
Ich halte den Code, den Struppi und du hier beispielhaft gepostet haben, für alles andere als übersichtlich.
Generell mag ich Objekt-Literale sehr, weil sie -für mich, zumindest bis zu einer gewissen Ebene- gut lesbar, klar strukturiert und übersichtlich sind und weil man auf einen Blick alle Daten erfassen kann. Aber das ist eine Frage der persönlichen Vorlieben und auch das kann man natürlich komplizieren bis zur Unlesbarkeit. So halte ich die von mir verwendete Notation durchaus nicht für die Beste, die Struktur jedoch ist eben eine, mit dem ich persönlich gut zurechtkomme.
Warum sind denn hier im Forum immer wieder Anfragen, die im Endeffekt durch ein vergessenen Zeichenketten-Begrenzer oder fehlende Maskierung verursacht wurden?
Weil Leute massig HTML in JavaScript in einer Weise unterbringen, wie es da überhaupt nicht benötigt wird und nicht hingehört.
Das mag sicherlich oft so sein, aber ob es dort benötigt wird oder hingehört oder auch nicht hat auf die anzuwendende Syntax ja keinen Einfluss. Womit wir wieder bei {siehe oben} wären.
Und das würde ich eigentlich für einen schlechten Scherz halten, überdimensionierte und tw. schlechte Frameworks wie prototype.js, jquery und wie sie alle heißen, als Alternative zu einer kleinen Helferfunktion heranzuziehen.
Ach Kai, versuchs doch mal mit Argumenten statt polemischen Rundumschlägen.
Nö, polemische Rundumschläge gegen Frameworks sind immer berechtigt *g*.
Nein, mir ging es darum, daß ich leider eine Entwicklung sehe, in der mehr oder weniger riesige Frameworks eingesetzt werden, nur um z.B. eine popelige Sliderfunktion an ein oder zwei Stellen der Seite einzubinden. Gleiches würde gelten, wenn man ein Framework dazu nutzt, nur um dynamisch etwas Code zu erzeugen. Es ging dabei nicht nur um den oben gequoteten Satz, sondern auch um
| Sicher kann ich dafür auch sowas wie Prototypes DOMBuilder verwenden, das ist eher eine Stil- und Geschmacksfrage - der Aufwand bleibt ungefähr gleich, weil die zu generierende Codemenge nie signifikant groß wird!
... was ein "Javascript-ungebildeter" Mitleser *in Verbindung* durchaus als Empfehlung verstehen könnte, dafür dafür ein Framework zu besorgen und einzubinden.
Der Link ist http://www.prototypejs.org/api/template und es geht nicht um deine Vorurteile hinsichtlich Frameworks, sondern um dieses Konzept, dass erstmal mit Prototype nichts zu tun hat; man braucht auch sicher nicht Prototype, um dieses Konzept einzusetzen, und es ist auch nicht kompliziert, solche Funktionalität mit separaten Helferfunktionen umzusetzen.
Also ein ganz gewöhnliches Template-System, wie ich es von z.B. PHP schon kenne. Wäre es als solches bezeichnet worden (und wenn ich den Link gehabt hätte bzw bei den google.links nicht beim ersten Auftreten von $('irgendwas') geistig weggeschaltet hätte), hätte ich das sofort verstanden, der Begriff 'Prototype-Template' ließ jedoch eher auf eine sehr Framework-spezifische Lösung schließen.
Und ja, ich mag Frameworks nicht sonderlich, würde hier aber zu weit führen; darüber wurde in einschlägigen Javascript-Gruppen in sehr vielen Threads mit mehreren hundert Beiträgen bis zum Erbrechen diskutiert
Cü,
Kai
--
Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
Mein Selfhtml-Kram