Entwicklung & Design

…der sanfte Ajax-Einstieg: Das Dojo-Toolkit

Seite 4 / 5

Mit diesem Vorgehen lassen sich die sonst notwendigen gegenseitigen Abhängigkeiten zwischen den Widgets und dem JavaScript-Code erheblich reduzieren, wodurch die Wartbarkeit des Quellcodes verbessert wird. Sollte der Grad an Unabhängigkeit der Komponenten noch nicht ausreichend sein, kann auf das Konzept der Topics zurückgegriffen werden. Dabei werden Ereignisse in eine zentrale Warteschlange gestellt, in der sich jede Funktion als Listener registrieren kann. Dadurch ist keine direkte Verknüpfung mehr nötig und zukünftigen Änderungen stehen sämtliche Wege offen. Der oben demonstrierte Dojo-Baum arbeitet nach diesem Prinzip und lässt sich so durch beliebige weitere Widgets ergänzen.

Im obigen Beispiel ist zu erkennen, dass Dojo über Möglichkeiten verfügt, vernünftige Debug-Ausgaben in den JavaScript-Code zu integrieren. Über die globale Variable djConfig lässt sich dann leicht konfigurieren, ob diese Ausgaben wirklich gemacht werden sollen oder in der produktiven Umgebung eben nicht (var djConfig = {isDebug: false};).

Asynchrone Kommunikation

Das Toolkit unterstützt den Entwickler auch bei der Kommunikation zwischen Client und Server. Das kann auf unterschiedlichen Abstraktionsebenen erfolgen: Wer möchte, kann sich mit Hilfe der Funktion dojo.io.bind selbst um den Datenaustausch kümmern. Neben dem XmlHTTPRequest-Prinzip stehen weitere Transportwege zur Verfügung (IFrame, Einbindung von script-Elementen). Für typische Remote Procedure Calls gibt es eine spezielle Lösung, bei der ein Dienst durch ein JSON-Objekt beschrieben wird und anschließend in JavaScript ein Objekt verfügbar ist, dessen Methoden die Server-Implementierung verfügbar machen.

Vielfach ist die erforderliche asynchrone Kommunikation aber bereits in die Widgets integriert, sodass man sich nicht um diese Details kümmern muss. Das Widget ContentPane etwa verfügt über diverse Möglichkeiten, um Bereiche der HTML-Seiten zu ersetzen. Die eingefügten Inhalte kann dieses Widget sogar in einem eigenen Cache verwalten. Um den Inhalt dieser ContentPane auszutauschen, muss dem Widget per setUrl mitgeteilt werden, was eingefügt werden soll.

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung