hotti: angular.js pros and cons

Beitrag lesen

Ich möchte gerne genau wissen, was sind die Vor- und Nachteile von agular.js (und Wiki)?

Die Frage ob server- oder clientseitiger Programmlogik ist uralt. Alles hat seine Vor- und Nachteile. Nehmen wir das einfache Beispiel "Tabelle sortieren", wird sehr schnell klar: Hier liegt der Vorteil im Einsatz einer clientseitigen Technik, die Seite mit der Tabelle muss nicht neu geladen werden, ein Klick auf die Überschrift und schwubbs ist die Tabelle sortiert.

Oder Formulare zum Erfassen von Eingaben und Hochladen von Dokumenten, z.B. Bewerbungsformulare die sich über mehrere Seiten erstrecken: Wenn die Seite wechselt, also neu geladen werden muss, müssen die Daten serverseitig zwischengespeichert werden, i.d.R. in der Session bevor mit dem endgültigen Submit auf Seite 20 der ganze Kram irgendwo serverseitig persistent gemacht wird. Da kann ne Menge dabei schiefgehen, sei es, dass nur die Session wegfliegt und der Besucher auf Seite 19 die Meldung kriegt: "Ihre Session ist leider abgelaufen, bitte loggen Sie sich neu ein".

Eine clientseitige Technik kann eingegebene Daten und hochzuladende Dokumente auch lokal speichern, z.B. in localStorage, indexedDB, in einem Objekt oder der Benutzer hat einen "Speichern unter..." Dialog, wo er die bisherigen Eingaben sichern und die Arbeit spräter wieder aufnehmen kann, wobei er sogar den Browser schließen und den Rechner runterfahren kann. Klar, inner Session geht das nicht und ab zum Server gehts erst, wenn das Ränzlein mit den Daten vollständig gepackt und verschnürt ist.

Seitens MDN und auch MS wird diesem Trend Rechnung getragen, neue Features (JS, HTML5, XHR2, ArrayBuffer usw.) ermöglichen es, Anwendungen immer benutzerfreundlicher zu machen und ggf. auch einen nahtlosen Übergang von Off- zu Online und umgekehrt.

Ein Application-Cache ermöglicht, dass Ressourcen wie JSON-Dateien, JS-Code und auch Bilderchen lokal verfügbar sind, nachdem die Anwendung einmal online aufgerufen wurde (Setup). Es liegt auf der Hand, nicht etwa 300 oder mehr Seiten (10000 Artikel für einen Shop) für den AppCache zu manifestieren, sondern die "Einzelseiten" kompakt zu speichern, so dass sich ein Framework darim kümmert, was da gerade im Browser angezeigt wird, ohne einen neuen Request feuern zu müssen (siehe Beispiel Artikeldaten, als JSON auf Angular-Tutorials).

Würde gerne mal wissen, ob das "good practice" ist.

Wenns um das Entwickeln von SPA's geht: Setze ein Framework ein. Ob das Angular heißt oder Angela, ist egal. Nutze eine OpenSource, die ist dokumentiert und es gibt eine Community, so kommst Du auch zum Ziel.

MfG