Dojo Toolkit

dojokit

Dojo Toolkit ist eine Open-Source- Modul- JavaScript-Bibliothek (oder JavaScript Toolkit) entwickelt, um die schnelle Entwicklung von Cross-Plattform, JavaScript / Ajax- basierte Anwendungen und Websites zu erleichtern . Es wurde von Alex Russell, Dylan Schiemann, David Schontzler und anderen im Jahr 2004 [1] gestartet und ist unter der geänderten BSD-Lizenz oder der Academic Free License (≥ 2.1) dual-lizenziert . [3] Die Dojo-Stiftung ist eine gemeinnützige Organisation [4] geschaffen mit dem Ziel, die Annahme des Toolkits zu fördern.

Neu: Der offizielle Name der rebranded und relaunched Verschmelzung der jQuery Foundation und der Dojo Foundation ist die JS Foundation.

Übersicht

Dojo ist ein JavaScript- Framework, das auf die vielen Bedürfnisse der großflächigen Client-seitigen Web-Entwicklung ausgerichtet ist. Zum Beispiel, Dojo abstrahiert die Unterschiede zwischen verschiedenen Browsern, um APIs, die auf alle von ihnen arbeiten (es kann sogar auf dem Server unter Node.js laufen ); Es schafft einen Rahmen für die Definition von Codecodes und die Verwaltung ihrer Interdependenzen; Es bietet Build-Tools für die Optimierung von JavaScript und CSS, die Erstellung von Dokumentationen und Unit-Tests; Es unterstützt Internationalisierung, Lokalisierung und Zugänglichkeit ; Und es bietet eine reiche Suite von häufig benötigten Utility-Klassen und Benutzer-Interface-Widgets.

Dojo ist völlig Open-Source. Das gesamte Toolkit kann als ZIP heruntergeladen und auch auf dem Google CDN gehostet werden . Das Toolkit umfasst etwa dreitausend JavaScript-Module, zusätzlich zu Bildern und anderen Ressourcen.

Das Dojo Toolkit ist in mehreren Teilen organisiert:

  • Dojo enthält den Kern und die meisten nicht-visuellen Module.
  • dijit ist eine Bibliothek von User-Interface-Modulen für Widgets und Layout.
  • Dojox hält verschiedene Module noch nicht als stabil genug, um in dojo oder dijit enthalten .
  • Util umfasst Build-Tools wie Optimierung, Dokumentation, Style-Checking und Testing.

Eigenschaften

Widgets

Dojo-Widgets sind Komponenten – bestehend aus JavaScript- Code, HTML- Markup und CSS- Style-Deklarationen – die Multi-Browser (nicht zu verwechseln mit Cross-Browser ), interaktive Features:

  • Menüs , Tabs und Tooltips
  • Sortierbare Tabellen
  • Dynamische Diagramme
  • 2D- Vektorzeichnungen
  • Animierte Effekte – Fades, Wipes und Slides-Einrichtungen für benutzerdefinierte Animationseffekte

Asynchrone Kommunikation

Ein wichtiges Merkmal von Ajax-Anwendungen ist die asynchrone Kommunikation des Browsers mit dem Server: Informationen werden ausgetauscht und die Präsentation der Seite wird aktualisiert, ohne dass die gesamte Seite neu geladen werden muss. Traditionell erfolgt dies mit dem JavaScript-Objekt XMLHttpRequest . Dojo bietet einen abstrahierten Wrapper ( dojo.xhr) um verschiedene Webbrowser-Implementierungen von XMLHttpRequest und dojo.iounterstützt auch andere Transporte (wie versteckte IFrames ) und eine Vielzahl von Datenformaten. Mit diesem Ansatz ist es einfach, die Daten zu haben, die ein Benutzer in ein Formular einträgt, das an den Server „hinter den Kulissen“ gesendet wird; Der Server kann dann mit einem JavaScript-Code antworten, der die Darstellung der Seite aktualisiert.

Verpackungssystem

Dojo stellt ein Verpackungssystem zur Verfügung, um die modulare Entwicklung der Funktionalität in einzelnen Paketen und Unterpaketen zu erleichtern; Die Basis Dojo “ bootstrap “ Skript initialisiert eine Reihe von hierarchischen Paket Namespaces – „io“, „Event“, etc. – unter einem Wurzel „Dojo“ Namespace . Nach der Initialisierung des Root-Namespace kann jedes Dojo-Paket (über XMLHttpRequest oder ein ähnlicher Transport) geladen werden, indem die im Bootstrap bereitgestellten Utility-Funktionen verwendet werden. Es ist auch möglich, zusätzliche Namespaces innerhalb oder parallel zum „dojo“ -Namespace zu initialisieren, so dass Erweiterungen von Dojo oder die Entwicklung von privaten Dojo-verwalteten Namespaces für Drittanbieter-Bibliotheken und Anwendungen möglich sind.

Dojo-Pakete können aus mehreren Dateien bestehen und können festlegen, welche Dateien das gesamte Paket darstellen. Jedes Paket oder jede Datei kann auch eine Abhängigkeit von anderen Paketen oder Dateien angeben. Wenn das Paket geladen ist, werden auch alle Abhängigkeiten, die es spezifiziert, geladen.

Workarounds für die domänenübergreifende Verladung der meisten Dojo-Pakete werden zur Verfügung gestellt (obwohl dies ein spezialisierter Build von Dojo erfordert).

Dojo bietet auch einen Mechanismus für den Aufbau von „Profilen“; Das Build-System nimmt als Eingabe eine Liste von Paketen und verwendet Rhino , um eine einzelne komprimierte JavaScript-Datei mit diesen Paketen und all ihren Abhängigkeiten zu erstellen. Dies ermöglicht es, alle notwendigen Code geladen und initialisiert auf einmal, und erlaubt das Zwischenspeichern des Codes (die meisten Web-Browser nicht Cache-Dateien geladen über XMLHttpRequest Zitat benötigt ] ). Vorgefertigte Profile für einige gängige Anwendungsfälle stehen zum Download von der gleichen Stelle wie dem vollständigen Toolkit zur Verfügung.

Clientseitige Datenspeicherung

Neben der Bereitstellung von Support-Funktionen zum Lesen und Schreiben von Cookies bietet Dojo auch eine lokale, clientseitige Speicherabstraktion namens Dojo Storage an. Dojo Storage ermöglicht es Webanwendungen, Daten auf der Client-Seite zu speichern, beharrlich und sicher und mit der Berechtigung eines Benutzers. Es funktioniert über vorhandene Webbrowser, einschließlich Internet Explorer , Firefox und Safari . Wenn es in einer Webseite enthalten ist, bestimmt Dojo Storage die beste Methode zur permanenten Speicherung von Informationen. Auf Firefox 2 verwendet es native Browser-Persistenz; Auf anderen Browsern verwendet es ein verstecktes Flash- Applet. Wenn Flash 6+ auf etwa 95% der mit dem Web verbundenen Computer installiert ist, [5]Dies macht den Speichermechanismus zugänglich für einen Großteil der installierten Basis des Internets. Für eine Web-Applikation, die aus dem Dateisystem geladen wird (dh aus einer Datei: // URL), verwendet Dojo Storage XPCOM auf Firefox und ActiveX auf Internet Explorer, um Informationen zu bestehen. Der Programmierer, der Dojo Storage verwendet, wird aus dem verwendeten Speichermechanismus abstrahiert und wird mit einer einfachen Hash-Tabellen- Abstraktion mit Methoden wie put () und get () versehen. Dojo Storage wird in Versionen nicht später als die 1.3 Release unterstützt.

Server-seitige Datenspeicherung

Ab Januar 2007 enthält Dojo das folgende Beispiel serverseitige Datenspeicher-Implementierungen im dojo.data- Namespace: [6]

  • CsvStore : ein Nur – Lese-Speicher, die Tabellendaten aus liest kommagetrennte Wert Dateien
  • OpmlStore : ein Nur – Lese-Speicher , die hierarchischen Daten von liest OPML – Format – Dateien
  • YahooStore : ein schreibgeschützter Shop, der Suchergebnissen aus dem Yahoo! abruft. Suche Webservice
  • DeliciousStore : ein schreibgeschützter Speicher, der Lesezeichen vom del.icio.us Web Service abruft
  • RdfStore : ein Lese-Schreib-Speicher, der SPARQL verwendet, um mit RDF- Datenservern zu sprechen , z. B. dem Rhizome RDF-Anwendungsserver.

Unterstützung für Adobe Integrated Runtime (AIR)

Dojo kann in JavaScript- basierten Adobe AIR- Anwendungen verwendet werden. Es wurde geändert, um die Sicherheitsanforderungen von AIR zu erfüllen.

SitePen, ein Dojo-Beratungsunternehmen, hat eine Adobe AIR-Anwendung namens „Dojo Toolbox“ mit Dojo gemacht. Es enthält einen API-Viewer und eine GUI zu Dojo’s Build-System. Normalerweise läuft das Build-System aus Rhino, aber in dieser AIR-Anwendung kann das Build-System von AIR aus laufen, ohne Java. [7]

10 Gründe, warum Ihre Projekte das Dojo Toolkit verwenden sollten

Das leistungsfähigste und wenig genutzte JavaScript-Hilfsprogramm ist ein und dasselbe: das Dojo-Toolkit. Während fast jedes JavaScript-Framework oder Toolkit verspricht, alles zu tun, was Sie benötigen, macht das Dojo Toolkit den überzeugendsten Fall für diese Aussage wahr. In diesem Beitrag werden viele der leistungsstärksten Funktionen des Dojo-Toolkits behandelt, und es wird der Grund dafür sein, warum Sie das Dojo-Toolkit für Ihr nächstes Projekt verwenden sollten.

Beginnen Sie nicht mit dem nächsten Projekt, ohne alle Features zu sehen, die Dojo zu bieten hat!

Wenn unser clientseitiger JavaScript-Code größer wird , wird die Modularität der Schlüssel sein, um unsere Anwendungen schnell, wartbar und performant zu halten. Die Tage der Verwendung einer Klumpen-Bibliotheksdatei ohne asynchrones Laden sind vorbei. Seit Jahren ist der Code des Dojo-Toolkits das leuchtende Beispiel für Modularität, wobei dojo.require(vor Builds) nur die Ressourcen verwendet werden, die von der Seite benötigt werden. Die Standardmethode zum Laden von JavaScript-Ressourcen war synchron, obwohl es eine domänenübergreifende Option gab, die asynchron war.

Dojo ist seitdem in einen asynchronen Loader überführt worden, der von Rawld Gill geschrieben wurde , der alle Ressourcen meisterlich asynchron lädt und die Geschwindigkeit erheblich verbessert. Um einige JavaScript-Ressourcen zu laden, können Sie etwa Folgendes eingeben:

Um ein Modul zu deklarieren, codieren Sie einfach das folgende Muster:

Diese einfache defineMethode, die von fast allen AMD-Ladern verwendet wird, ist unglaublich einfach und strukturiert. sehr ähnlich wie ein Block erforderlich, so ist es sehr einfach zu bedienen. Die im Abhängigkeitsarray aufgeführten Elemente werden geladen, bevor der Rückruf ausgeführt wird. Der Callback (normalerweise) gibt eine Funktion oder ein Objekt zurück, die das Modul darstellen. Ein einfaches Muster, das sich schnell lädt, Modularität aufrechterhält und Entwicklern ermöglicht, nur das zu laden, was sie brauchen!

Dojo’s feature-rich loader bietet Plugins wie domReady zum Abhören der DOM-Bereitschaft und Feature-Erkennung mit hasJS. Der Loader ist außerdem intelligent genug, um Module auf Basis von Umgebung oder Konfiguration bedingt zu laden:

Dojo ist nicht nur modular aufgebaut, sondern bietet Ihnen auch einen eingebauten Loader!

JavaScript bietet zwar kein echtes Klassensystem, jedoch bietet das Dojo-Toolkit ein klassenartiges Vererbungsmuster dojo/declare. Declare wird im gesamten Framework verwendet, damit Entwickler Folgendes tun können:

  • reduzieren oder eliminieren Sie wiederholten Code
  • Verwenden Sie „Mixins“, um die Funktionalität unter vielen anderen Klassen zu teilen
  • Einfache Erweiterung bestehender Klassen für eine verbesserte Anpassung
  • Codemodule zwischen verschiedenen Projekten teilen
  • Erstellen Sie sicher „feste“ Klassen, wenn es einen Fehler in einer vorhandenen Dojo-Klasse gibt

Dojos Klassensystem verwendet prototypische Vererbung, wodurch Prototypen vererbt werden können und somit Kinderklassen aufgrund des gemeinsamen Prototyps genauso leistungsfähig wie Eltern sein können. Die Benutzung dojo/declareist unglaublich einfach:

Während die oben aufgeführte Klasse keine echte Aufgabe erfüllt (es ist nur ein Beispiel), veranschaulicht sie die Wiederverwendung von Code über die Vererbungskette und die Mixins. es zeigt auch, wie eine untergeordnete Klasse die gleiche Methode einer übergeordneten Klasse aufrufen kann, um wiederholten Code zu reduzieren.

Ein weiterer Vorteil des Dojo-Klassensystems besteht darin, dass alle Eigenschaften und Methoden anpassbar sind. Es gibt kein „Optionen“ -Objekt, das die Anzahl der an Dojo-Klassen anpassbaren Eigenschaften einschränkt. Alles wird während des Klassenerstellungsprozesses leicht geändert und erweitert.

Aspekte sind eines der leistungsfähigsten und wesentlichsten Elemente der fortgeschrittenen Webanwendungsentwicklung … und das Dojo Toolkit hat sie seit Jahren bereitgestellt. Anstatt die Funktionalität nach einem traditionellen Benutzerereignis auszulösen, z. B. clickmouseoveroder keyup, können Sie mit Aspekten die Funktion B auslösen, bevor oder nachdem die Funktion A ausgeführt wird. Im Wesentlichen können Sie Funktionen mit Funktionen verbinden – brillant!

Das Auslösen einer Funktion nach einer anderen Funktion sieht wie folgt aus:

Sicherstellen, dass die Funktion B vor der Funktion A ausgelöst wird!

Aspekte sind sehr hilfreich beim Erstellen von erweiterten Benutzeroberflächen mit Dijit. Das Hören von Ereignissen in einem Widget oder einer Klasse kann eine Änderung in anderen Widgets auslösen, sodass Entwickler ein großes, von vielen kleinen steuerndes Widget erstellen können:

Die Aspektressource wurde zuvor mit dojo.connect gefunden.

Ich kann dieses UI-Framework nicht genug unterstützen. Wenn ich sage, dass es unvergleichlich ist, kann ich nicht betonen, wie sehr ich es meine. Es ist nichts in der Nähe.

Deferreds sind objektbasierte Darstellungen asynchroner Operationen, die es ermöglichen, asynchrone Operationszustände von einem Ort zum anderen zu übergeben. Eine der jüngsten und wichtigsten Ergänzungen von jQuery war „Deferreds“. Zufälligerweise ist das Mantra des Dojo-Teams „Dojo did it“. Das Dojo-Toolkit bietet Deferreds seit mehreren Jahren und verwendet sie für einfache und erweiterte AJAX-Operationen, Animationen und mehr.

Dojo war darüber hinaus Vorreiter bei verschiedenen IO-Handling-Methoden außerhalb des Standard-XMLHTTPRequest, einschließlich eines window.nameWrappers, dojo/io/iframezum Hochladen von AJAX-Dateien und mehr. Wann werden verzögerte Objekte in Dojo verwendet? Wann immer eine asynchrone / AJAX-Aktion stattfindet! Zurückgestellte werden von XHR-Anfragen, dojo/ioAnforderungen, Animationen und mehr zurückgegeben!

Und wie sieht dojo/io/iframedie API aus?

Die Schönheit von Dojo mit Deferreds für jede AJAX-Operation ist, dass Sie unabhängig von der Methode immer wissen, dass Sie eine Deferred-Funktion erhalten, die Entwicklung beschleunigt und die API vereinheitlicht. Dojo 1.8 wird die Einführung dojo/requesteiner neuen Konsolidierung von AJAX-Methoden sehen. Hier einige Beispiele, wie die dojo/requestAPI in Zukunft verwendet wird:

Durch eine einheitliche API wird die Entwicklung beschleunigt und der Code kompakter. Das neue dojo/requestModul von Bryan Forbes verspricht, Dojo noch entwicklerfreundlicher zu machen!

Dijit ThemeTester

Der größte Vorteil des Dojo Toolkits gegenüber anderen JavaScript-Frameworks ist zweifellos das Dijit UI-Framework. Dieser unvergleichliche Satz an Layout, Formular und anderen Tools bietet:

  • vollständige, „out of the box“ Lokalisierung
  • volle Zugänglichkeitsunterstützung
  • erweiterte Layout-Widgets zur Erleichterung der Schmerzen von 100% Höhenelementen, Mühe bei der Erstellung von benutzerdefinierten Teilern und Layoutänderungen usw.
  • Form Widgets mit erhöhter Benutzerfreundlichkeit und eingebauter Validierung
  • viele Themen, von denen die neueste „claro“
  • LESS-Dateien für benutzerdefinierte Themen
  • sehr modularer Code für die ultimative Anpassung und Erweiterung bestehender Widgets

Dijit ermöglicht auch die Erstellung von deklarativen und programmatischen Widgets; Die deklarative Widget-Erstellung sieht wie folgt aus:

… wobei die traditionelle JavaScript-Widget-Erstellung wie folgt aussieht:

Es gibt mehrere Dutzend Dijit-Widgets, die im Dijit-Namespace bereitgestellt werden, und ein paar Dutzend mehr im Dojox-Namespace. Das Dijit UI Framework ist nicht nur ein paar hilfreiche UI Widgets, da so etwas wie jQueryUI ist; Dijit ist ein unternehmensfertiges, unternehmensgeprüftes UI-Framework.

In meinen zwei Jahren bei SitePen habe ich fast ausschließlich mit Dijit gearbeitet und die Feinheiten der Erstellung flexibler, lokalisierbarer, effizienter Widgets. Ich kann dieses UI-Framework nicht genug unterstützen. Wenn ich sage, dass es unvergleichlich ist, kann ich nicht betonen, wie sehr ich es meine. Es ist nichts in der Nähe.

Dojo Mobile

Wie bei fast allen Problemen im Web hat Dojo eine Lösung; In diesem Fall antwortet Dojo auf mobile Leben im Dojox / Mobile-Namespace. Dojos ausgezeichnete mobile Lösung bietet:

  • ein Geräteerkennungsdienstprogramm
  • Themen für iOS, Android, Blackberry und „Common“ Thema
  • mobile Formular-Widgets
  • Layout-Widgets und -Fenster
  • Unterstützung für Desktop, was das Debuggen erleichtert

Mobile Widgets können deklarativ oder programmgesteuert erstellt werden, genau wie Dijit-Widgets. Mobile Ansichten können lässig gerendert werden und der Austausch zwischen den Ansichten ist nahtlos. Die HTML-Anatomie einer Dojox / Mobile-Seite ist ziemlich einfach:

Durch die Verwendung dojox/mobile/deviceThemekönnen wir das Benutzergerät erkennen und das richtige Thema anwenden:

Wenn das Gerätethema vorhanden ist, werden im nächsten Schritt die von unserer spezifischen mobilen Anwendung verwendeten Widgets sowie alle anderen benutzerdefinierten Klassen benötigt, die wir wünschen:

Sobald die JavaScript-Ressourcen benötigt wurden, ist es an der Zeit, deklarativ eine Reihe von Ansichten und Widgets hinzuzufügen, aus denen die Anwendung besteht:

Ein unglaublicher Vorteil bei der Verwendung von dojox / mobile ist, dass die API für die Widget-Erstellung mit allen anderen Dijit-Klassen identisch ist. Daher ist die Geschwindigkeit bei der Entwicklung für diejenigen, die Dijit schon einmal verwendet haben, erhöht; Für diejenigen, die neu in Dojo sind, ist die mobile API immer noch unglaublich einfach.

Ajax London Logo

Der größte Vorteil des Dojo Toolkits gegenüber anderen JavaScript-Frameworks ist zweifellos das Dijit UI-Framework.

CSS-Animationen sind ein großartiges Visualisierungstool, ebenso wie animierte Bilder, sind aber nicht so flexibel und leistungsfähig wie die Erstellung und Bearbeitung von Vektorgrafiken. Das beliebteste Tool zur Generierung von Grafiken auf der Client-Seite ist seit jeher Raphael JS , aber die GFX-Bibliothek von Dojo ist zweifellos leistungsfähiger. GFX kann so konfiguriert werden, dass Vektorgrafiken in SVG, VML, Silverlight, Canvas und WebGL gerendert werden. GFX bietet einen nutzbaren Wrapper, mit dem jede Vektorgrafikform (Ellipse, Linie, Pfad usw.) für eine schnelle Entwicklung erstellt werden kann. Entwickler können:

  • Neigen, Drehen und Skalieren von Grafiken
  • Animieren von Füll-, Stroker- und anderen Grafikeigenschaften
  • Fügen Sie einem Shape lineare und zirkuläre Gradienten hinzu
  • Hören und reagieren Sie auf Mausereignisse
  • Gruppenformen für einfacheres Management und Animation

Das Erstellen einer einfachen Gruppe von Formen über eine Leinwand könnte wie folgt aussehen:

Dojo GFX

Eine API, die auf GFX geschrieben wurde, ist Dojos leistungsstarke Dojox / Charting-Bibliothek. Die Visualisierung von Daten über das Charting ist beliebt und aus gutem Grund; Zahlen einfach zu lesen, liefert nicht das ganze Bild. Die dojox / charting-Bibliothek ermöglicht:

  • Mehrfache Parzellen
  • animierte Diagrammelemente
  • Plugins, einschließlich MoveSlice (Animiert Tortendiagramm-Slices), Tooltip, Magnify und Highlight
  • selbstaktualisierende Diagramme, die von Dojo-Datenspeichern bereitgestellt werden

Ein grundlegendes Tortendiagramm kann mit dem folgenden Dojo-JavaScript-Code erstellt werden:

Dojo-Charting

Während der obige Code ein einfaches Tortendiagramm erstellt, kann die dojox / charting-Bibliothek von Dojo viel, viel mehr .

SitePen Dojo dgrid

SitePen , eine von Dojo-Gründer Dylan Schiemann gegründete JavaScript-Beratung, wollte DojoX’s klobige und aufgeblähte Grid-Widgets durch ein sehr schnelles, erweiterbares und bearbeitbares Grid-Widget ersetzen. Sie haben diese Aufgabe mit dgrid erfüllt . dgrid Eigenschaften:

  • zahlreiche Themen und ist leicht thematisch
  • Komplette mobile Kompatibilität
  • sortierbare Zeilen
  • onDemand-Grid-Utilities, die ein faules Laden von Grid-Daten ermöglichen
  • Baumgitterfunktionen
  • bearbeitbare Rasterinhalte mit Dijit-Widgets
  • Erweiterungen einschließlich Spaltengrößenänderung, Drag & Drop, Paginierung und mehr

SitePen hat eine herausragende Arbeit geleistet, um jede Komponente von dgrid zu dokumentieren. Daher ist es sehr einfach , eigene funktionsreiche Raster zu erstellen.

Dojo ist nicht nur modular aufgebaut, sondern bietet Ihnen auch einen eingebauten Loader!

Das Testen ist auf der Clientseite genauso wichtig wie auf der Serverseite. Mit der Auswahl an verfügbaren Browsern und der unterschiedlichen Anzahl von Funktionen in jeder Browser-Version ist die Interaktivitätstests auf Clientseite ein Muss. Das Dojo Toolkit-eigene Test-Framework mit dem Spitznamen DOH (Dojo Objective Harness) wird mit jedem Dojo-Versionsdownload bereitgestellt. Test schreiben ist unglaublich einfach und Tests können in einigen verschiedenen Formaten zur Verfügung gestellt werden:

Der obige Test ist ein sehr einfaches Beispiel für einen Dojo-Test, aber wie sieht es mit einer schwierigen Situation aus, dh mit asynchronen Aktionen? Die offensichtlichste asynchrone Aktion ist eine AJAX-Anfrage, aber Animationen und andere aktivierte Aktionen werden eine solche Situation verursachen. DOH bietet eine unglaublich einfache Methode zum Testen von asynchronen Aktionen mit doh.Deferred-Objekten:

In dem obigen Beispieltest wird die getTestCallbackFunktion erst ausgelöst, wenn sie doAjaxActionabgeschlossen ist, und gibt den Erfolg oder Misserfolg des Tests zurück.

Die nachfolgenden Tests werden nicht vorwärts verschoben, bis doh.Deferred aufgelöst oder abgelaufen ist, so dass es keine Testtimings oder Überschneidungsprobleme gibt. DOH bietet eine unglaublich zuverlässige Testsuite, die andere clientseitige Frameworks einfach nicht bereitstellen. DOH bietet außerdem einen Java-basierten DOH-Roboter, der echte Maus- und Tastaturaktionen für präzisere und realistischere Tests simuliert. Wenn Sie hören, wie Homer Simpson „Woohoo!“ Schreit, gehen alle Tests vorüber; Wenn Sie das gefürchtete „DOH!“ hören, sind Ihre Tests fehlgeschlagen und Sie müssen Ihren Code erneut korrigieren.

Werbung

Wenn eine Webanwendung zur Veröffentlichung bereit ist, ist es aufgrund der optimierten Auslastung und Zwischenspeicherung unglaublich wichtig, eine verkleinerte, mehrschichtige JavaScript-Datei oder Datei (en) zu erstellen. Dadurch werden Anforderungen reduziert und die Auslastung der Website so gering wie möglich gehalten. Noch besser ist, dass Dojos Build-System defineAnrufe analysiert und sie verwendet, um Abhängigkeiten für Builds automatisch zu erkennen. Um den Dojo-Build-Prozess zu verwenden, erstellen Sie ein so genanntes Build-Profil. Build-Profile können eine Vielzahl von Layern enthalten und sehr komplex sein. Das folgende Profil ist jedoch ein einfaches Beispiel:

Der Build-Prozess von Dojo ist extrem anpassbar und ermöglicht dem Entwickler die Anpassung:

  • der Minifizierer (Dojo ShrinkSafe oder Google Closure)
  • das Ausmaß der Verkleinerung, die auf die beteiligten CSS-Dateien anzuwenden ist, wenn Widgets erstellt werden
  • wo der Build ausgegeben wird, um
  • die Selektor-Engine, die innerhalb des Builds verwendet werden soll
  • …und vieles mehr!

Build-Profile werden über die Befehlszeile ausgeführt (die kürzlich für NodeJS neu geschrieben wurde), und die Befehlszeile bietet eine Vielzahl von Optionen zum Überschreiben oder Ergänzen von Einstellungen innerhalb des Buildprofils. Einige Beispiele für das Ausführen des Buildprofils umfassen:

Der Dojo-Build-Prozess bietet eine unglaubliche Kontrolle über die generierten Build-Dateien und runden den Optimierungsprozess der Webanwendung ab. Mit der CSS und JS Minicomputer und Ebenen auf entsprechende Ebenen, ist Ihre Dojo-powered App für Showtime bereit!

Zwei sehr bekannte DojoX-Bibliotheken wurden bereits oben erwähnt, DojoX Mobile und GFX, aber das sind nur zwei der Dutzende versteckter Schätze, die von Dojo zur Verfügung gestellt werden. Zu diesen Schätzen gehören:

  • zusätzliche Layout- und Formular-Widgets für Dijit
  • erweiterte, lokalisierte Formularvalidierungsroutinen
  • WebSocket- und Long-Polling-Wrapper
  • Bild-Widgets, einschließlich Lightbox, Diashow und Galerie-Dienstprogramme
  • Fortgeschrittene IO-Helfer
  • erweiterte Drag & Drop-Bibliotheken
  • Nodelist-Erweiterungen

Dies sind nur einige der Dutzende von Edelsteinen innerhalb von DojoX. Durchsuchen Sie die Dojo-Kasse, um mehr über die fantastischen Fransen-Tools zu erfahren!

Das Dojo Toolkit ist ein allumfassendes JavaScript-Toolkit, das Folgendes bereitstellt:

  • Grundlegende JavaScript-Sprache und Hilfsprogramme
  • Erweiterte Javascript-Sprache und AJAX-Utilties
  • On-Demand asynchrones Skript laden
  • Ein komplettes UI-Framework
  • Eine umfassende Testsuite
  • Werkzeuge bauen
  • …und mehr!

Geschichte

Die Versionen 1.4 bis 1.10 erhalten weiterhin neue Punktversionen, da wichtige Änderungen rückgemeldet werden. Die Arbeit an der Version 2.0 läuft, mit dem Ziel einer Alpha-Version, die im Frühjahr 2016 veröffentlicht wird. [12]

Versionsnummer Veröffentlichungsdatum Zusätzliche Bemerkungen
0,1 2005-08-30 [8]
0,2 2005-12-14 [8]
0,3 2006-05-12 [8]
0,4 2006-11-05 [8]
0,9 2007-09-14 [8] Gesamtumschreibung.
1,0 2007-11-05 [8] Erste stabile Freisetzung.
1.0.1 2007-09-13 [9]
1.0.2 2007-09-13 [9]
1.1 2008-03-26 [8]
1.1.1 2008-05-13 [9]
1.2 2008-10-02 [8]
1.2.1 2008-11-06 [9]
1.2.2 2008-11-16 [9]
1.2.3 2008-12-08 [9]
1.3.0 2009-03-26 [8]
1.3.1 2009-04-30 [9]
1.3.2 2009-07-15 [9]
1.4.0 2009-12-07 [9]
1.4.1 2010-01-25 [9]
1.4.2 2010-03-10 [9]
1.4.3 2010-05-01 [9]
1.4.4 2012-06-22 Wartungsfreigabe, die Unterstützung für Internet Explorer 9 und Firefox 4+ hinzufügt.
1.4.5 2010-08-24
1.5.0 2010-07-22 [9] „Claro“ Thema.
1.5.1 2011-04-12
1.5.2 2012-02-09
1.5.3 2010-08-24
1.6.0 2011-03-15 [9] Unterstützung von HTML5 -Datenattributen.
1.6.1 2011-05-20 [9]
1.6.2 2010-08-24
1.7.0 2011-10-27 Starten Sie mit AMD ( Asynchronous Module Definition ) API. [10]
1.7.1 2011-12-16
1.7.2 2012-02-16
1.7.3 2012-06-22
1.7.4 2012-10-05
1.7.5 2013-06-14
1.8.0 2012-08-15 Dokumentationsüberholung.
1.8.1 2012-10-14 [9]
1.8.2 2012-12-12
1.8.3 2012-12-19
1.8.5 2013-06-14
1.8.6 2014-02-20
1.8.9 2014-12-08
1.8.10 2015-01-19
1.9.0 2013-05-01
1.9.1 2013-06-14
1.9.2 2013-12-16 [11]
1.9.3 2014-02-20
1.10.0 2014-06-13
1.10.4 2015-01-18
1.12.2 2017-03-05

Kritik

Loading

Frühere Versionen von Dojo hatten einen Ruf für sperrig und langsam zu laden. [13] Es benötigte auch zusätzliche Arbeit, um Dojo über Domänen zu laden, zB von einem CDN . Die Bewältigung dieser Probleme war das Hauptziel von Dojo 1.7, das die asynchrone Moduldefinition (AMD) und einen „Nano“ Loader eingeführt hat. [14]

Dokumentation

Dojo ist seit langem für seine unvollständige, verstreute und veraltete Dokumentation kritisiert worden. In Anerkennung dessen haben die Entwickler große Verbesserungen in der Dokumentation für die 1.8-Version gemacht, darunter neue Tutorials, einen API-Browser, das Ausfüllen der fehlenden Stücke und die Aktualisierung der meisten Beispiele in AMD- Stil. [15] [16]

Eine Reihe von Büchern wurden über Dojo geschrieben, aber alle basieren auf Dojo 1.3 oder früher, jetzt mehrere Jahre veraltet. Da diese AMD-Unterstützung und ihre begleitende Reorganisation vorangehen, verweisen die Beispiele in diesen Büchern fast immer auf Dinge, die jetzt veraltet und nicht mehr bewährt sind. Die meisten Autoren warten auf Dojo 2.0, bevor sie etwas Neues veröffentlichen. [17]

Lernkurve

Viele haben kommentiert, dass Dojo schwer zu lernen und loszulegen ist, vor allem im Vergleich zu den populäreren jQuery . [18] [19]

Dojo-Co-Schöpfer Dylan Schiemann erkennt dies als Folge ihrer unterschiedlichen Bereiche an: „Es ist sicherlich leichter, etwas zu lernen, das kleiner ist als etwas, das mehr tut, aber unsere begeisterten Benutzer weisen darauf hin, dass ein bisschen mehr Lernen vorne sie unzählige rettet Stunden für Dinge, die Dojo leicht macht. “ [13]

API-Stabilität

Die frühen Benutzer hatten einen schwierigen Übergang zum 1.0 Release, nachdem das Toolkit total umgeschrieben wurde. [16] Der Umzug nach AMD in den letzten Versionen war ähnlich problematisch. [19] Dojo hat große Mühe gehabt, Rückwärtskompatibilität trotz seiner schnellen Entwicklung zu behalten, mit einem großen Teil der gegenwärtigen API veraltet aber noch beibehalten, aber Benutzer haben häufig festgestellt, daß Aufsteigerungen nicht so glatt gegangen waren, wie gehofft.

Die bevorstehende 2.0-Version wird erwartet, um viel von der veralteten API zu entfernen, aber meistens kompatibel mit 1.8.

Dojo Foundation und Sponsoring

Die Dojo-Stiftung ist eine 501 (c) (6) gemeinnützige Organisation, die gegründet wurde, um Open-Source-Projekte zu unterstützen. Seine primären Ziele sind, um bei der Annahme von Unternehmen zu helfen, und ermutigen Projekte in der Stiftung zusammenzuarbeiten. [4]

Seine Sponsoren und Mitglieder sind:

  • AOL [20]
  • IBM [20]
  • SitePen [20] [21]
  • Uxebu [20]
  • TIBCO [20]
  • Boko [20]
  • TimeTrade [20]
  • Orangenlabors [20]
  • Zend
  • Google [20]
  • Renkoo
  • TurboAjax
  • OpenLaszlo
  • Nexaweb [20]
  • Sun Microsystems [20] (erworben von Oracle Corporation )
  • JotSpot (erworben von Google )
  • Bea Systems [20] (erworben von Oracle Corporation )
  • Mozilla [20]
  • Redfin [20]
  • SixApart [20]
  • SpringSource / vmware [20]
  • Webtide [20]

Die Dojo-Stiftung unterstützt neben dem Dojo Toolkit auch folgende Projekte:

  • AnimeJ [22]
  • CometD [22] (für das Comet- Content-Streaming-Paradigma)
  • DWR [22]
  • Einbindungen [22]
  • Schneller Messenger
  • Allgemeine Schnittstelle [22]
  • Grunzen [22] [23]
  • Intern [22] [24]
  • Jed Toolkit [22]
  • Lo-Bindestrich [22] [25]
  • Lucid Desktop [22] [26]
  • Maqetta [22]
  • OpenCoWeb [22]
  • Persevere [22] [27]
  • RequireJS [22] [28]
  • Tessel [22]
  • Wink Toolkit [22]
  • Zazl [22]

Im Jahr 2006 kündigten sowohl IBM [29] als auch Sun Microsystems [30] die offizielle Unterstützung für Dojo an, darunter auch Codebeiträge. Ein Gartner-Bericht im Jahr 2009 darauf hingewiesen, dass IBM Dojo über 30 ihrer Produkte zu unterstützen. [31] Zend Technologies , das Unternehmen hinter dem PHP- Kern, kündigte 2008 eine Partnerschaft mit Dojo an und integrierte das Toolkit in das Zend Framework . [32]

Dojo Toolkit

https://dojotoolkit.org/

Diese Seite übersetzen

Dojo Toolkit 1.12. A JavaScript toolkit that saves you time and scales with your development process. Provides everything you need to build a Web app.

Tutorials

API – Hello Dojo! – Reference Guide – Animation – Beyond Dojo

API

Dojo toolkit API documentation viewer, version 1.10.

Download

compressed uncompressed. A single-file download providing …

License Information

Dojo 0.x and 1.x is available under either the terms of the New BSD …

Dojo Demos

3rd Party Demos. twitterverse Aggregate Twitter information …

Dojo/dojo


dojo is the foundation package of the Dojo Toolkit. Sometimes …

Dojo Toolkit Downloads

Dojo Toolkit Downloads. Download latest stable release …

Dojo Toolkit Reference Guide

Welcome. The Dojo Toolkit Reference Guide is designed to …

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*
*