Get your wingS back!

Transparentes Ajax

Werfen wir zuerst einen Blick auf die Technik der neu eingeführten inkrementellen Seitenaktualisierungen. Verantwortlich hierfür zeigt sich ein erweiterter ReloadManager in der wingS Architektur. Dieser ist dafür zuständig, zu erkennen welche Komponenten sich während der Verarbeitung eines Requests durch die vom Event Dispatcher zugestellten Events und die UI- Logik geändert haben und daher im Browser aktualisiert werden müssen. Konnte bislang immer nur die HTML-Darstellung vollständig neu generiert und ausgeliefert werden, werden nun durch die Ajax-Engine lediglich die reinen Änderungen direkt in die Seite eingearbeitet. Dabei genügt es, wenn sich die Implementierungen der Renderer in der simpelsten Variante einfach weiterhin darauf beschränken, auf Anfrage die benötigte HTML-Darstellung einer Komponente zu generieren. Somit profitieren auch alle bisher realisierten Renderer und Komponenten sofort und ohne jegliche weitere Mitwirkung von dieser Neuerung.

Im nächsten Schritt filtert der ReloadManager redundante Aktualisierungsanfragen, wie sie z.B. bei gleichzeitiger Änderung einer Komponente und ihrer Vater-Komponenten entstehen können, selbständig aus und sammelt die verbleibenden Aktualisierungen. Aus diesen werden dann Update-Nachrichten erzeugt und an die Ajax-Engine im Browser gesendet von wo aus sie dann in die Seite eingearbeitet werden.

Einige wingS Komponenten, allen voran die Tabelle, gehen sogar noch einen Schritt weiter und unterstützen zudem feingranularere Operationen. Diese kommen beispielsweise zum Zuge, wenn der Benutzer durch Klick auf eine Zelle die Bearbeitung und damit einen STableCellEditor startet oder sich Selektionen bzw. einzelne Werte im TableModel geändert haben. Das erhöht die Geschwindigkeit weiter, spart Ressourcen und führt zu stabileren Darstellungen im Browser. Ebenfalls erwähnenswert ist, dass die inkrementelle Aktualisierungen der Seite im Vergleich zu anderen Frameworks vollständig optional geblieben ist und daher jederzeit die aktuelle Sicht in gewohnt klassischer Manier auch als vollständige HTML-Seite ausgeliefert werden kann.

Abb. 1: Der ReloadManager in der wingS Architektur
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.