Dojo Toolkit
| {{#if: | | {{#invoke:WLink|getArticleBase}} }}
{{#if: Logo des Dojo Toolkits | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | Logo des Dojo Toolkits |
{{#if: {{#invoke:Wikidata|claim|P154}} |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[[Datei:{{#invoke:Wikidata|claim|P154}}|150px]]
}} }}{{#if: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| {{#if: JavaScript-Framework | JavaScript-Framework }}| }} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Basisdaten
{{#if: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Hauptentwickler |
{{#if: {{#invoke:Wikidata|claim|P126}} |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Maintainer | claim|P126|parameter=link|references=ja|list=, }}
}} }}{{#if: Dojo Foundation | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Entwickler |
{{#if: {{#invoke:Wikidata|claim|P178}} |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Entwickler | claim|P178|parameter=link|references=ja|list=, }}
}} }}{{#if: | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Erscheinungsjahr |
{{#if: {{#invoke:Wikidata|claim|P577}} |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Erscheinungsjahr | claim|P577|references=ja|list=, }} |
{{#if: {{#invoke:Wikidata|claim|P571}} |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Erscheinungsjahr | claim|P571|references=ja|list=, }}
}} }} }}{{#ifeq: {{{AktuelleVersion}}} | KEINE_ANGABE || {{#if: | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Aktuelle Version | ({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. |
format | {{{AktuelleVersionFreigabeDatum}}} | {{#timefl:now|date}}}} | {{{2}}} | T._Monat JJJJ}} | lang= {{#switch: | -|=de | #default=de-AT
}} }} }}) }} |
{{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813}} |
| |||||||||||||||||||||||||||||||||||||||||||||||||
| Aktuelle Version | claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}} | ({{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}}) }}}}}} }}{{#ifeq: {{{AktuelleVorabVersion}}} | KEINE_ANGABE || {{#if: | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Aktuelle Vorabversion | ({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. |
format | {{{AktuelleVorabVersionFreigabeDatum}}} | {{#timefl:now|date}}}} | {{{2}}} | T._Monat JJJJ}} | lang= {{#switch: | -|=de | #default=de-AT
}} }} }}) }} |
{{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724}} |
| |||||||||||||||||||||||||||||||||||||||||||||||||
| Aktuelle Vorabversion | claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}} | ({{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}}) }}}}}} }}{{#if: | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Ausführungsumgebung |
{{#if: plattformunabhängig |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Betriebssystem | plattformunabhängig |
{{#if: {{#invoke:Wikidata|claim|P306}} |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Betriebssystem | claim|P306|parameter=link|references=ja|list=, }}
}} }} }}{{#if: TypeScript JavaScript | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Programmiersprache | TypeScript JavaScript |
{{#if: {{#invoke:Wikidata|claim|P277}} |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Programmiersprache | claim|P277|parameter=link|references=ja|list=, }}
}} }}{{#if: Klassenbibliothek | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Kategorie | Klassenbibliothek
}}{{#if: BSD-Lizenz, Academic Free License<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20060411205656 |
* | {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php}} }} (Archivversionen) | 20060411205656}} | {{#if: | }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
|
{{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php}} }}] {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-12-13 15:05:57 InternetArchiveBot | 2023-12-13 15:05:57 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20060411205656}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}} }} |
{{#if: | {{{webciteID}}}}} | len|{{{webciteID}}}}} | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php}} }}] {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-12-13 15:05:57 InternetArchiveBot | 2023-12-13 15:05:57 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }} | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php}} }}] {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-12-13 15:05:57 InternetArchiveBot | 2023-12-13 15:05:57 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }} | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: | }}
}} |
{{{webciteID}}}}} {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php}} }}] ({{#if: {{#if: 2023-12-13 15:05:57 InternetArchiveBot | 2023-12-13 15:05:57 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}} |
{{#if: | Vorlage:Webarchiv/Today | {{#if: | Vorlage:Webarchiv/Generisch | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php}} }}]
}}}}}}}}{{#if:2023-12-13 15:05:57 InternetArchiveBot
|
Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|
all = url= | opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original= | cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv | errNS = 0 | template = Vorlage:Webarchiv | format = * | preview = 1
}}{{#ifexpr: {{#if:20060411205656|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
|
{{#if: | }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
|
getdomain|{{{archiv-url}}}}} | web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
|
webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
|
archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
|
Execute}}|}} | {{#if: | }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}} | }} | {{#if: | }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}} |
{{#if: | {{#if: | }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.opensource.org/licenses/academic.php}}
|
{{#if: | }}
}}{{#if: Archivierte Kopie
|
isBracketedLink|Archivierte Kopie}} | {{#if: | }}
}} |
{{#if: | }}
}}{{#switch:
|
addlpages= {{#if: | }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.opensource.org/licenses/academic.php%7Carchiv}} |-1
|
{{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.opensource.org/licenses/academic.php%7C4}}%7Chttp}} |-1 | {{#switch: {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php }} | daserste.ndr.de | inarchive.com | webcitation.org = | #default = {{#if: | }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref> |
|
| Lizenz | BSD-Lizenz, Academic Free License<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20060411205656 | * | {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php}} }} (Archivversionen) | 20060411205656}} | {{#if: | }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
|
{{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php}} }}] {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-12-13 15:05:57 InternetArchiveBot | 2023-12-13 15:05:57 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20060411205656}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}} }} |
{{#if: | {{{webciteID}}}}} | len|{{{webciteID}}}}} | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php}} }}] {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-12-13 15:05:57 InternetArchiveBot | 2023-12-13 15:05:57 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }} | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php}} }}] {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-12-13 15:05:57 InternetArchiveBot | 2023-12-13 15:05:57 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }} | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: | }}
}} |
{{{webciteID}}}}} {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php}} }}] ({{#if: {{#if: 2023-12-13 15:05:57 InternetArchiveBot | 2023-12-13 15:05:57 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}} |
{{#if: | Vorlage:Webarchiv/Today | {{#if: | Vorlage:Webarchiv/Generisch | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php}} }}]
}}}}}}}}{{#if:2023-12-13 15:05:57 InternetArchiveBot
|
Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|
all = url= | opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original= | cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv | errNS = 0 | template = Vorlage:Webarchiv | format = * | preview = 1
}}{{#ifexpr: {{#if:20060411205656|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
|
{{#if: | }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
|
getdomain|{{{archiv-url}}}}} | web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
|
webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
|
archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
|
Execute}}|}} | {{#if: | }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}} | }} | {{#if: | }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}} |
{{#if: | {{#if: | }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.opensource.org/licenses/academic.php}}
|
{{#if: | }}
}}{{#if: Archivierte Kopie
|
isBracketedLink|Archivierte Kopie}} | {{#if: | }}
}} |
{{#if: | }}
}}{{#switch:
|
addlpages= {{#if: | }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.opensource.org/licenses/academic.php%7Carchiv}} |-1
|
{{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.opensource.org/licenses/academic.php%7C4}}%7Chttp}} |-1 | {{#switch: {{#invoke:Webarchiv|getdomain|http://www.opensource.org/licenses/academic.php }} | daserste.ndr.de | inarchive.com | webcitation.org = | #default = {{#if: | }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref> |
{{#if: {{#invoke:Wikidata|claim|P275}} |
|
| Lizenz | claim|P275|parameter=link|references=ja|list=, }}
}} }}{{#if: ja | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| deutschsprachig | faculty|ja}} | ja | nein }}
}}{{#if: | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sonstiges | {{{Sonstiges}}}
}}{{#if: dojotoolkit.org | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dojotoolkit.org |
{{#if: {{#invoke:Wikidata|claim|P856|notdeprecated=1}} |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#invoke: WLink | formatURL | {{#invoke:Wikidata|claim|P856|parameter=link|notdeprecated=1}}}}
}} }}{{#if: | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dateien | [[c:Category:Created with |]]
}} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Das Dojo Toolkit ist eine freie, modulare JavaScript-Bibliothek, die zur raschen Entwicklung von JavaScript- oder Ajax-basierenden Anwendungen und Websites dient. Begonnen wurde das Projekt 2004 von Alex Russell, Dylan Schiemann, David Schontzler und anderen. Eine Mehrfachlizenz erlaubt sowohl die BSD-Lizenz als auch die Academic Free License. Die Dojo Foundation ist eine gemeinnützige Organisation, die die Verbreitung des Toolkits zum Ziel hat.
Das Toolkit besteht aus drei Komponenten. Der Hauptteil Dojo stellt grundlegende Werkzeuge zur Verfügung, wie z. B. eine vereinfachte Handhabung des DOM, von Arrays, Ajax, Ereignissen usw., wie es die meisten JavaScript-Bibliotheken bieten. Der zweite Teil namens Dijit enthält vorgefertigte Komponenten, die es ermöglichen sollen einfach, einheitliche, häufig benutzte, grafische Benutzeroberflächen nach dem Baukastensystem zu erstellen. Schließlich gibt es noch DojoX, das noch weiterreichende Komponenten zur Verfügung stellt, die allerdings zumindest teilweise als experimentell anzusehen sind.
Features
Widgets
Widgets laufen bei Dojo unter dem Überbegriff Dijit und sind vorgefertigte Bausteine aus JavaScript, HTML und CSS, die dazu dienen, verschiedene browserunabhängige Features in Websites einzubauen:
- Menüs, Tabs und Tooltips
- Sortierbare Tabellen, dynamische Diagramme und 2D-Vektorgrafik
- Animationseffekte
- Baumstrukturen mit Drag-and-Drop-Funktionalität
- Verschiedene bequem zu bedienende Formulare und Routinen zur Validierung von Formulardaten
- Uhr- und Kalenderfunktionen
- Ein Online-Editor für formatierte Texte
- Ein Satz von Widgets, die barrierefreie Webseiten gemäß WAI-ARIA für sehbehinderte User unterstützen.
Asynchrone Kommunikation
Ein wichtiges Merkmal von Ajax-Anwendungen ist die asynchrone Kommunikation zwischen Browser und Server: Der Inhalt einer Seite wird aktualisiert, ohne dass die Seite neu geladen werden muss. Herkömmlich wird das über browserabhängige JavaScript-Anweisungen (XMLHttpRequest) getan. Dojo benutzt zur Abstraktion hiervon einen Wrapper (dojo.io.bind), in dem die verschiedenen Implementierungen gekapselt sind, und der noch weitere Transportmechanismen (wie versteckte Inlineframe) und eine Anzahl von Datenformaten unterstützt.
Modulsystem
Dojo bietet ein Paketsystem, bei dem der modulare Aufbau von Funktionalität in einzelne Pakete und Unterpakete gegliedert ist. Das unterste Bootstrap-Skript von Dojo initialisiert einen Wurzel-Namensraum „dojo“ und darunter eine Reihe von hierarchischen Paket-Namensräumen wie „io“ und „event“ unter einem. Danach kann jedes Dojo-Paket durch entsprechende Funktionen geladen werden. Es ist auch möglich, zusätzliche Namensräume innerhalb des „dojo“-Namensraumes oder parallel dazu zu initialisieren, so dass Dojo durch eigene oder von Drittanbietern entwickelte Zusatzpakete erweitert werden kann.
Dojo-Pakete können aus mehreren Dateien bestehen. Jedes Paket kann spezifizieren, von welchen anderen Paketen es abhängt, so dass diese mitgeladen werden. Ein eigener Build von Dojo erlaubt auch das Zuladen von Paketen aus mehreren Domains zugleich.
Dojo stellt einen Mechanismus zur Verfügung, mit dem „Profile“ erstellt werden können: Beim Erstellungsprozess wird eine Liste von Paketen eingelesen und mithilfe von Apache Ant wird eine einzelne komprimierte JavaScript-Datei erzeugt, die diese Pakete und alles, wovon sie abhängen, enthält. Dies erlaubt es, den gesamten notwendigen Code auf einmal zu laden und zu initialisieren, und ermöglicht es, ihn auch zu cachen. (Die meisten Browser cachen keine Dateien, die über XMLHttpRequest hereinkommen.) Vorgefertigte Profile für einige gängige Anwendungsfälle stehen zum Herunterladen bereit.
Client-seitige Datenspeicherung
Außer Funktionen, die das Lesen und Schreiben von Cookies unterstützen, stellt Dojo auch eine lokale Client-seitige Abstraktion namens Dojo Storage zur Verfügung, die es Web-Anwendungen erlaubt, mit Einwilligung des Benutzers Daten auf dem Client-Rechner zu speichern. Wie dies geschieht, ist browserabhängig. Bei Firefox 2 ist eine persistente Datenspeicherung vorgesehen. Bei anderen Browsern wird ein unsichtbares Flash-Programm dafür verwendet. Bei Anwendungen, die aus dem lokalen Dateisystem geladen werden (d. h. von einer URL nach dem Muster file://), arbeitet Dojo Storage beim Firefox mit XPCOM und beim Internet Explorer mit ActiveX. Gegenüber dem Programmierer sind diese unterschiedlichen Verfahren in eine virtuelle Hashtabelle gekapselt.
Server-seitige Datenspeicherung
Dojo umfasst eine Reihe von Implementierungen zum Zugriff auf Server-seitig gespeicherte Daten, darunter solche mit nur lesendem Zugriff auf CSV-Tabellen, OPML-Dateien und bei YahooStore und Delicious gehostete Daten; außerdem Schreib-Lese-Zugriff in SPARQL auf RDF-Server wie den Application Server Rhizome.
Entwicklungswerkzeuge
Zur komfortablen Arbeit mit Dojo können die Integrierten Entwicklungsumgebungen Aptana oder Komodo verwendet werden. Die WYSIWYG-Umgebung WaveMaker Visual Ajax Studio verwendet einige Widgets des Dojo-Toolkits 1.0. Das Dojo-Foundation-Projekt GeneralInterface stellt den GeneralInterface-Builder bereit, welcher zusätzlich zum GeneralInterface-Framework auch Dojo integriert.<ref>https://www.sitepen.com/blog/2010/03/03/general-interface-dojo-integration-and-runtime-metadata/</ref>
Stiftung und Sponsoren
Das Dojo Toolkit wird von IBM, Sun Microsystems, AOL und anderen Firmen unterstützt. Zend Technologies hat Dojo in das Zend Framework seit V1.6 integriert (Dojo wird mit ausgeliefert).
Die Dojo Foundation ist eine gemeinnützige Organisation, deren Stiftungszweck es ist, Open-Source-Projekte und ihre Zusammenarbeit miteinander zu unterstützen.
Mitglieder und Sponsoren sind:
Literatur
- James Harmon: Dojo, Prentice Hall Computer, Juli 2008
- Matthew Russell: Dojo: The Definitive Guide, O’Reilly, Juni 2008
- Craig Riecke, Rawid Gill, Alex Russell: Mastering Dojo, Pragmatic Programmers, Juni 2008
- Michael Seemann: Dojo Toolkit schnell + kompakt, Entwickler.Press, Februar 2007
Weblinks
- Offizielle Webpräsenz
- Matthew Russell, The Mojo of Dojo Einführungsartikel, Jan. 2007
- Dojo Overview
Einzelnachweise
<references />
{{#ifeq: s | p | | {{#if: 7562632-9n/2008/71460173952023 | |
}} }}{{#ifeq:||{{#if: | [[Kategorie:Wikipedia:GND fehlt {{#invoke:Str|left|{{{GNDCheck}}}|7}}]] }}{{#if: | {{#if: | | }} }} }}{{#if: | {{#ifeq: 0 | 2 | | }} }}{{#if: | {{#ifeq: 0 | 2 | | }} }}{{#ifeq: s | p | {{#if: 7562632-9 | | {{#if: {{#statements:P227}} | | }} }} }}{{#ifeq: s | p | {{#if: 7562632-9 | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P227}} | | }} }} }} }}{{#ifeq: s | p | {{#if: n/2008/71460 | | {{#if: {{#statements:P244}} | | }} }} }}{{#ifeq: s | p | {{#if: n/2008/71460 | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P244}} | | }} }} }} }}{{#ifeq: s | p | {{#if: 173952023 | | {{#if: {{#statements:P214}} | | }} }} }}{{#ifeq: s | p | {{#if: 173952023 | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P214}} | | }} }} }} }}Vorlage:Wikidata-Registrierung
- Seiten mit defekten Dateilinks
- Wikipedia:Vorlagenfehler/Parameter:Datum
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Archiv-URL
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Linktext fehlt
- Wikipedia:GND fehlt
- Wikipedia:Normdaten-TYP falsch oder fehlend
- Wikipedia:GND in Wikipedia fehlt, in Wikidata vorhanden
- Wikipedia:GND in Wikipedia vorhanden, fehlt jedoch in Wikidata
- Wikipedia:LCCN in Wikipedia fehlt, in Wikidata vorhanden
- Wikipedia:LCCN in Wikipedia vorhanden, fehlt jedoch in Wikidata
- Wikipedia:VIAF in Wikipedia fehlt, in Wikidata vorhanden
- Wikipedia:VIAF in Wikipedia vorhanden, fehlt jedoch in Wikidata
- Freies Webframework
- JavaScript-Bibliothek