ich bin die Woche auf Lib Direct Web Remoting gestoßen, welchen den Ansatz verfolgt, mittels JS auf erlaubte Java Methoden zuzugreifen.
Die Idee finde ich sehr interessant und möchte nun in einem bestehenden Beispiel- Projekt eine bestehende JSF- Web App gegen eine reine HTML/JS Web "App" austauschen. Business / Backend sind EJB's, die die Logik kennen.
Ok,
ich habe mir eine Delegate Klasse geschrieben, welche via einen lookup meine Business Schicht anspricht. Diese Delegate Klasse wird von DWR mit new erzeugt und steht als JS zur Verfügung.
Message wäre eine eigene Objektinstanz, welche mittels einer "Converter" Beschreibung dem DWR bekannt gemacht wird.
Ganz nett bei dem Framework ist, dass es eine generierte Testseite gibt, auf der man die aufgelisteten Java- Zugriffsmethoden aufgelistet bekommt.
( jetzt zur eigentlichen Frage )
Das klappt soweit auch. Da ich nun nicht große Erfahrungen mit JS habe, frage ich mich nun, was sind die "Best Practices" um damit dynamischen HTML Code zu erzeugen.
Ich habe mir eine simple HTML Seite erzeugt, welche die benötigten JS Scripte einbindet, die zum Ansprechen der Java Klassen benötigt werden.
Bei JSF würd ich nun zum Beispiel ein <ui:repeat> nehmen, welches die Liste der Message Objekte aufnimmt und dann mittels einem <hutputText> die jeweilige Message darstellt.
Was ist da die saubere Lösung bei Verwendung von JS?
platziert man im HTML an der gewünschten Stelle einfach mal ein JS Script ein, welches dann via ner FOR Schleife HTML Elemente generiert?
oder sollten die ganzen Scripts in JS Dateien ausgelagert werden?
wäre für ein solches Szenario der Einsatz von zB jQuery sinnvoll?
wie würdet ihr das auf der Präsentationsschicht lösen?
auf was sollte man noch achten?
Ich habe bisher noch nichts in der Richtung gemacht. Von daher wäre es toll, wenn ihr mir ein paar Tipps geben könnt.
Ja, finde ich sogar sehr sinnvoll. Dein Server-Framework hat bestimmt auch die Möglichkeit JSON/REST-Services anzubieten, dann würdest du mit jQuery vollkommen auskommen und könntest auch noch auf DWR verzichten.
Prinzipiell zahlt sich jQuery schon alleine wegen den jQuery-Templates-Plugins aus. Die Plugins leisten so ziemlich alle das gleiche, du definierst auf deinen HTML-Seiten die jeweiligen Templates die den HTML-Code samt den Stellen die Attributwerte ausgeben und rufst diese dann auf an den Stellen an denen du sie brauchst.
1. Wenn so viel in JS gemacht wird, muss man darauf achten, dass man den Code sauber hält. HTML/JS lädt gerade dazu ein, grausig zu wartenden Mischmasch zu produzieren.
2. Man muss immer im Hinterkopf behalten, dass die Logik am Client nun einsehbar ist.
3. Welche Browser werden beim Kunden eingesetzt und der übliche Webdesign-Krempel.