Dojo Toolkit

dojokit

Dojo Toolkit (stilisiert als Dōjō Toolkit ) ist eine Open-Source- Modul- JavaScript-Bibliothek (oder mehr speziell 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]

Geschichte freigeben

Dieser Artikel muss aktualisiert werden . Bitte aktualisieren Sie diesen Abschnitt, um aktuelle Ereignisse oder neu verfügbare Informationen zu widerspiegeln. (September 2015)
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

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]


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.

*
*