https://de.wikipedia.org/w/index.php?action=history&feed=atom&title=Asynchronous_module_definition
Asynchronous module definition - Versionsgeschichte
2025-06-01T12:44:53Z
Versionsgeschichte dieser Seite in Wikipedia
MediaWiki 1.45.0-wmf.3
https://de.wikipedia.org/w/index.php?title=Asynchronous_module_definition&diff=255921939&oldid=prev
Trustable: catfix
2025-05-11T17:27:42Z
<p>catfix</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 11. Mai 2025, 19:27 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 40:</td>
<td colspan="2" class="diff-lineno">Zeile 40:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><references /></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><references /></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:<del style="font-weight: bold; text-decoration: none;">ECMAScript</del>]]</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:<ins style="font-weight: bold; text-decoration: none;">JavaScript</ins>]]</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Programmierschnittstelle]]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Programmierschnittstelle]]</div></td>
</tr>
</table>
Trustable
https://de.wikipedia.org/w/index.php?title=Asynchronous_module_definition&diff=239489556&oldid=prev
DerMaxdorfer: Wikilink Latenzzeit korrigiert; weitere Wikilinks aktualisiert
2023-11-26T16:52:17Z
<p>Wikilink Latenzzeit korrigiert; weitere Wikilinks aktualisiert</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 26. November 2023, 18:52 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]-[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#Weitere Verwendungen der Ausdrücke Monolith und monolithisch|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[Teile<del style="font-weight: bold; text-decoration: none;"> </del>und<del style="font-weight: bold; text-decoration: none;"> </del>herrsche<del style="font-weight: bold; text-decoration: none;"> (Informatik)|Teile und Herrsche</del>]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]-[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#Weitere Verwendungen der Ausdrücke Monolith und monolithisch|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[Teile<ins style="font-weight: bold; text-decoration: none;">-</ins>und<ins style="font-weight: bold; text-decoration: none;">-</ins>herrsche<ins style="font-weight: bold; text-decoration: none;">-Verfahren</ins>]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>{{Webarchiv|url=https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition |wayback=20160304121006 |text=Archivierte Kopie |archiv-bot=2022-10-05 21:59:22 InternetArchiveBot }}</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[Klasse (<del style="font-weight: bold; text-decoration: none;">Programmierung</del>)|Klassen]] sind, und auch genauso durch Vererbung<del style="font-weight: bold; text-decoration: none;"> </del> erweitert werden können.<ref>{{Webarchiv|url=http://docs.weejot.com/developer/reference/amd.html |wayback=20130718212018 |text=Archivierte Kopie |archiv-bot=2023-03-10 05:21:49 InternetArchiveBot }}</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>{{Webarchiv|url=https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition |wayback=20160304121006 |text=Archivierte Kopie |archiv-bot=2022-10-05 21:59:22 InternetArchiveBot }}</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[Klasse (<ins style="font-weight: bold; text-decoration: none;">Objektorientierung</ins>)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref>{{Webarchiv|url=http://docs.weejot.com/developer/reference/amd.html |wayback=20130718212018 |text=Archivierte Kopie |archiv-bot=2023-03-10 05:21:49 InternetArchiveBot }}</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Vorteile der Modularisierung bestehen besonders im [[Webbrowser|Browser]]-Umfeld, wo JavaScript besonders häufig genutzt wird. Es werden nur die benötigten Module geladen, nicht jedoch alles, wie es beim synchronen Laden der Fall wäre. Das erhöht einerseits die Performanz des Codes und erleichtert andererseits das [[Debugger|Debuggen]], insbesondere bei Cross-Domain-Zugriffsproblemen.<ref>https://github.com/amdjs/amdjs-api/wiki/AMD</ref> Weiterhin ermöglicht es eine bessere Wiederverwendbarkeit einzelner Codefragmente, ohne diese per Kopieren und Einfügen oder serverseitige Verkettung (''server side concatenation'') transportieren zu müssen. Daraus ergibt sich eine Verringerung der Nutzung [[Variable (Programmierung)#Variablen in einer Blockstruktur|globaler Variablen]] auf ein Minimum und reduziert so die durch Namespace Pollution entstehenden Probleme signifikant.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Vorteile der Modularisierung bestehen besonders im [[Webbrowser|Browser]]-Umfeld, wo JavaScript besonders häufig genutzt wird. Es werden nur die benötigten Module geladen, nicht jedoch alles, wie es beim synchronen Laden der Fall wäre. Das erhöht einerseits die Performanz des Codes und erleichtert andererseits das [[Debugger|Debuggen]], insbesondere bei Cross-Domain-Zugriffsproblemen.<ref>https://github.com/amdjs/amdjs-api/wiki/AMD</ref> Weiterhin ermöglicht es eine bessere Wiederverwendbarkeit einzelner Codefragmente, ohne diese per Kopieren und Einfügen oder serverseitige Verkettung (''server side concatenation'') transportieren zu müssen. Daraus ergibt sich eine Verringerung der Nutzung [[Variable (Programmierung)#Variablen in einer Blockstruktur|globaler Variablen]] auf ein Minimum und reduziert so die durch Namespace Pollution entstehenden Probleme signifikant.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Durch die Vorgabe der Verteilung des Codes auf viele einzelne Dateien ergeben sich jedoch auch Nachteile. Jede Datei muss vom Browser in einem separaten [[Hypertext Transfer Protocol|HTTP]]-Aufruf geladen werden, was bei vielen kleinen Dateien sehr viel [[Kommunikationsprotokoll|Protokoll]]-[[Overhead (EDV)|Overhead]] erzeugen kann. Dadurch kann insbesondere bei Verbindungen mit hoher [[<del style="font-weight: bold; text-decoration: none;">Verzögerungszeit</del>|Latenzzeit]] eine Verzögerung bemerkbar werden.<ref>https://tomdale.net/2012/01/amd-is-not-the-answer/</ref></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Durch die Vorgabe der Verteilung des Codes auf viele einzelne Dateien ergeben sich jedoch auch Nachteile. Jede Datei muss vom Browser in einem separaten [[Hypertext Transfer Protocol|HTTP]]-Aufruf geladen werden, was bei vielen kleinen Dateien sehr viel [[Kommunikationsprotokoll|Protokoll]]-[[Overhead (EDV)|Overhead]] erzeugen kann. Dadurch kann insbesondere bei Verbindungen mit hoher [[<ins style="font-weight: bold; text-decoration: none;">Verzögerung (Telekommunikation)</ins>|Latenzzeit]] eine Verzögerung bemerkbar werden.<ref>https://tomdale.net/2012/01/amd-is-not-the-answer/<ins style="font-weight: bold; text-decoration: none;"></ref> Dieser Overhead beim Abruf von verschiedenen Javascript-Dateien kann allerdings durch die Verwendung eines serverseitigen Bundlings kompensiert werden.<ref>https://requirejs.org/docs/api.html</ins></ref></div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Dieser Overhead beim Abruf von verschiedenen Javascript-Dateien kann allerdings durch die Verwendung eines serverseitigen Bundlings kompensiert werden.<ref>https://requirejs.org/docs/api.html</ref></div></td>
<td colspan="2" class="diff-empty diff-side-added"></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Zur Umsetzung des AMD-Formats existieren verschiedene AMD-Frameworks wie <del style="font-weight: bold; text-decoration: none;">z.</del> <del style="font-weight: bold; text-decoration: none;">B.</del> [[RequireJS]], [[Dojo Toolkit|The Dojo Loader]] oder [[curl.js]].</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Zur Umsetzung des AMD-Formats existieren verschiedene AMD-Frameworks wie <ins style="font-weight: bold; text-decoration: none;">zum</ins> <ins style="font-weight: bold; text-decoration: none;">Beispiel</ins> [[RequireJS]], [[Dojo Toolkit|The Dojo Loader]] oder [[curl.js]].</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Einsatz ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Einsatz ==</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Das AMD-Format sieht eine spezielle Moduldefinition bzw. Komponentendefinition vor, welche die Deklaration und das korrekte Laden von Abhängigkeiten ermöglicht. Die Moduldefinition erfolgt somit auf der Basis von Programmierkonventionen. Diese Konvention hat sich bei vielen frei verfügbaren Javascript-Bibliotheken, wie <del style="font-weight: bold; text-decoration: none;">z.&nbsp;B.</del> [[jQuery]] oder [[Socket.IO]], durchgesetzt.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Das AMD-Format sieht eine spezielle Moduldefinition bzw. Komponentendefinition vor, welche die Deklaration und das korrekte Laden von Abhängigkeiten ermöglicht. Die Moduldefinition erfolgt somit auf der Basis von Programmierkonventionen. Diese Konvention hat sich bei vielen frei verfügbaren Javascript-Bibliotheken, wie <ins style="font-weight: bold; text-decoration: none;">zum Beispiel</ins> [[jQuery]] oder [[Socket.IO]], durchgesetzt.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="javascript"></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="javascript"></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>define("Name des Moduls", ["Abhängigkeit1", "Abhängigkeit2"], factory);</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>define("Name des Moduls", ["Abhängigkeit1", "Abhängigkeit2"], factory);</div></td>
</tr>
</table>
DerMaxdorfer
https://de.wikipedia.org/w/index.php?title=Asynchronous_module_definition&diff=231738482&oldid=prev
Aka: https, Links normiert, Kleinkram
2023-03-12T12:21:01Z
<p>https, Links normiert, Kleinkram</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 12. März 2023, 14:21 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]-[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#<del style="font-weight: bold; text-decoration: none;">Weitere_Verwendungen_der_Ausdrücke_Monolith_und_monolithisch</del>|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[<del style="font-weight: bold; text-decoration: none;">Teile_und_herrsche_</del>(Informatik)|Teile und Herrsche]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]-[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#<ins style="font-weight: bold; text-decoration: none;">Weitere Verwendungen der Ausdrücke Monolith und monolithisch</ins>|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[<ins style="font-weight: bold; text-decoration: none;">Teile und herrsche </ins>(Informatik)|Teile und Herrsche]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>{{Webarchiv|url=https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition |wayback=20160304121006 |text=Archivierte Kopie |archiv-bot=2022-10-05 21:59:22 InternetArchiveBot }}</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[<del style="font-weight: bold; text-decoration: none;">Klasse_</del>(Programmierung)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref>{{Webarchiv|url=http://docs.weejot.com/developer/reference/amd.html |wayback=20130718212018 |text=Archivierte Kopie |archiv-bot=2023-03-10 05:21:49 InternetArchiveBot }}</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>{{Webarchiv|url=https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition |wayback=20160304121006 |text=Archivierte Kopie |archiv-bot=2022-10-05 21:59:22 InternetArchiveBot }}</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[<ins style="font-weight: bold; text-decoration: none;">Klasse </ins>(Programmierung)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref>{{Webarchiv|url=http://docs.weejot.com/developer/reference/amd.html |wayback=20130718212018 |text=Archivierte Kopie |archiv-bot=2023-03-10 05:21:49 InternetArchiveBot }}</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Vorteile der Modularisierung bestehen besonders im [[Webbrowser|Browser]]-Umfeld, wo JavaScript besonders häufig genutzt wird. Es werden nur die benötigten Module geladen, nicht jedoch alles, wie es beim synchronen Laden der Fall wäre. Das erhöht einerseits die Performanz des Codes und erleichtert andererseits das [[Debugger|Debuggen]], insbesondere bei Cross-Domain-Zugriffsproblemen.<ref>https://github.com/amdjs/amdjs-api/wiki/AMD</ref> Weiterhin ermöglicht es eine bessere Wiederverwendbarkeit einzelner Codefragmente, ohne diese per Kopieren und Einfügen oder serverseitige Verkettung (''server side concatenation'') transportieren zu müssen. Daraus ergibt sich eine Verringerung der Nutzung [[Variable (Programmierung)#Variablen in einer Blockstruktur|globaler Variablen]] auf ein Minimum und reduziert so die durch Namespace Pollution entstehenden Probleme signifikant.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Vorteile der Modularisierung bestehen besonders im [[Webbrowser|Browser]]-Umfeld, wo JavaScript besonders häufig genutzt wird. Es werden nur die benötigten Module geladen, nicht jedoch alles, wie es beim synchronen Laden der Fall wäre. Das erhöht einerseits die Performanz des Codes und erleichtert andererseits das [[Debugger|Debuggen]], insbesondere bei Cross-Domain-Zugriffsproblemen.<ref>https://github.com/amdjs/amdjs-api/wiki/AMD</ref> Weiterhin ermöglicht es eine bessere Wiederverwendbarkeit einzelner Codefragmente, ohne diese per Kopieren und Einfügen oder serverseitige Verkettung (''server side concatenation'') transportieren zu müssen. Daraus ergibt sich eine Verringerung der Nutzung [[Variable (Programmierung)#Variablen in einer Blockstruktur|globaler Variablen]] auf ein Minimum und reduziert so die durch Namespace Pollution entstehenden Probleme signifikant.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Durch die Vorgabe der Verteilung des Codes auf viele einzelne Dateien ergeben sich jedoch auch Nachteile. Jede Datei muss vom Browser in einem separaten [[Hypertext Transfer Protocol|HTTP]]-Aufruf geladen werden, was bei vielen kleinen Dateien sehr viel [[Kommunikationsprotokoll|Protokoll]]-[[<del style="font-weight: bold; text-decoration: none;">Overhead_</del>(EDV)|Overhead]] erzeugen kann. Dadurch kann insbesondere bei Verbindungen mit hoher [[Verzögerungszeit|Latenzzeit]] eine Verzögerung bemerkbar werden.<ref><del style="font-weight: bold; text-decoration: none;">http</del>://tomdale.net/2012/01/amd-is-not-the-answer/</ref></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Durch die Vorgabe der Verteilung des Codes auf viele einzelne Dateien ergeben sich jedoch auch Nachteile. Jede Datei muss vom Browser in einem separaten [[Hypertext Transfer Protocol|HTTP]]-Aufruf geladen werden, was bei vielen kleinen Dateien sehr viel [[Kommunikationsprotokoll|Protokoll]]-[[<ins style="font-weight: bold; text-decoration: none;">Overhead </ins>(EDV)|Overhead]] erzeugen kann. Dadurch kann insbesondere bei Verbindungen mit hoher [[Verzögerungszeit|Latenzzeit]] eine Verzögerung bemerkbar werden.<ref><ins style="font-weight: bold; text-decoration: none;">https</ins>://tomdale.net/2012/01/amd-is-not-the-answer/</ref></div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Dieser Overhead beim Abruf von verschiedenen Javascript-Dateien kann allerdings durch die Verwendung eines serverseitigen Bundlings kompensiert werden.<ref><del style="font-weight: bold; text-decoration: none;">http</del>://requirejs.org/docs/api.html</ref></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Dieser Overhead beim Abruf von verschiedenen Javascript-Dateien kann allerdings durch die Verwendung eines serverseitigen Bundlings kompensiert werden.<ref><ins style="font-weight: bold; text-decoration: none;">https</ins>://requirejs.org/docs/api.html</ref></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Zur Umsetzung des AMD-Formats existieren verschiedene AMD-Frameworks wie z. B. [[RequireJS]], [[<del style="font-weight: bold; text-decoration: none;">Dojo_Toolkit</del>|The Dojo Loader]] oder [[curl.js]].</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Zur Umsetzung des AMD-Formats existieren verschiedene AMD-Frameworks wie z. B. [[RequireJS]], [[<ins style="font-weight: bold; text-decoration: none;">Dojo Toolkit</ins>|The Dojo Loader]] oder [[curl.js]].</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Einsatz ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Einsatz ==</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Das AMD-Format sieht eine spezielle Moduldefinition bzw. Komponentendefinition vor, welche die Deklaration und das korrekte Laden von Abhängigkeiten ermöglicht. Die Moduldefinition erfolgt somit auf der Basis von Programmierkonventionen. Diese Konvention hat sich bei vielen frei verfügbaren Javascript-Bibliotheken, wie z.&nbsp;B. [[jQuery]] oder [[Socket.IO]], durchgesetzt.<del style="font-weight: bold; text-decoration: none;"> </del></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Das AMD-Format sieht eine spezielle Moduldefinition bzw. Komponentendefinition vor, welche die Deklaration und das korrekte Laden von Abhängigkeiten ermöglicht. Die Moduldefinition erfolgt somit auf der Basis von Programmierkonventionen. Diese Konvention hat sich bei vielen frei verfügbaren Javascript-Bibliotheken, wie z.&nbsp;B. [[jQuery]] oder [[Socket.IO]], durchgesetzt.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="javascript"></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="javascript"></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>define("Name des Moduls", ["Abhängigkeit1", "Abhängigkeit2"], factory);</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>define("Name des Moduls", ["Abhängigkeit1", "Abhängigkeit2"], factory);</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight></div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Der oben stehende Programmcode veranschaulicht die Moduldefinition im AMD-Format. Neben dem Namen des Moduls und den Abhängigkeiten wird eine Factory-Methode definiert, über die das Modul erzeugt wird. Diese Factory-Methode dient dazu, die Komponente zu instanziieren und mögliche Schnittstellen-Objekte zu exportieren. Wie erkenntlich wird, ist für den Einsatz des AMD-Formats eine Javascript-Bibliothek erforderlich, welche die define-Methode anbietet und die verschiedenen Komponenten instanziiert, sowie die Abhängigkeiten injizieren. Im AMD-Umfeld wird hierbei von einem AMD-Loader gesprochen. Die Vorgehensweise entspricht weitestgehend dem Muster der [[Abstrakte Fabrik|abstrakten Fabrik]] und der [[Dependency Injection]] mit einem IoC-Container. Auf diese Weise können beliebige Komponenten instanziiert und die benötigten Abhängigkeiten können in der entsprechenden Reihenfolge bereitgestellt werden. Die einzelnen Komponenten einer JS-Anwendung können voneinander entkoppelt werden.<del style="font-weight: bold; text-decoration: none;"> </del></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Der oben stehende Programmcode veranschaulicht die Moduldefinition im AMD-Format. Neben dem Namen des Moduls und den Abhängigkeiten wird eine Factory-Methode definiert, über die das Modul erzeugt wird. Diese Factory-Methode dient dazu, die Komponente zu instanziieren und mögliche Schnittstellen-Objekte zu exportieren. Wie erkenntlich wird, ist für den Einsatz des AMD-Formats eine Javascript-Bibliothek erforderlich, welche die define-Methode anbietet und die verschiedenen Komponenten instanziiert, sowie die Abhängigkeiten injizieren. Im AMD-Umfeld wird hierbei von einem AMD-Loader gesprochen. Die Vorgehensweise entspricht weitestgehend dem Muster der [[Abstrakte Fabrik|abstrakten Fabrik]] und der [[Dependency Injection]] mit einem IoC-Container. Auf diese Weise können beliebige Komponenten instanziiert und die benötigten Abhängigkeiten können in der entsprechenden Reihenfolge bereitgestellt werden. Die einzelnen Komponenten einer JS-Anwendung können voneinander entkoppelt werden.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="javascript"></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="javascript"></div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>define('PieChartModule', ['area', 'graph'],<del style="font-weight: bold; text-decoration: none;"> </del></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>define('PieChartModule', ['area', 'graph'],</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> function ( area, graph ) {<del style="font-weight: bold; text-decoration: none;"> </del></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> function ( area, graph ) {</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> // Beschreibung des Plot-Modules</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> // Beschreibung des Plot-Modules</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> var plotModuleExport = {</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> var plotModuleExport = {</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Zeile 26:</td>
<td colspan="2" class="diff-lineno">Zeile 26:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> // Einfache Nutzung der Module “graph” und “area”</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> // Einfache Nutzung der Module “graph” und “area”</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return graph.drawPie(area.randomGrid(width, height), data);</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return graph.drawPie(area.randomGrid(width, height), data);</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> }<del style="font-weight: bold; text-decoration: none;"> </del></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> }</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> };</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> };</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return plotModuleExport;</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return plotModuleExport;</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Zeile 35:</td>
<td colspan="2" class="diff-lineno">Zeile 35:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Weblinks ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Weblinks ==</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://github.com/amdjs/amdjs-api/wiki/AMD AMD API wiki]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://github.com/amdjs/amdjs-api/wiki/AMD AMD API wiki]</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* [<del style="font-weight: bold; text-decoration: none;">http</del>://requirejs.org/docs/whyamd.html Why AMD? (Require.js)]</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* [<ins style="font-weight: bold; text-decoration: none;">https</ins>://requirejs.org/docs/whyamd.html Why AMD? (Require.js)]</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* [<del style="font-weight: bold; text-decoration: none;">http</del>://addyosmani.com/writing-modular-js/ Writing Modular JavaScript With AMD, CommonJS & ES Harmony]</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* [<ins style="font-weight: bold; text-decoration: none;">https</ins>://addyosmani.com/writing-modular-js/ Writing Modular JavaScript With AMD, CommonJS & ES Harmony]</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Einzelnachweise ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Einzelnachweise ==</div></td>
</tr>
</table>
Aka
https://de.wikipedia.org/w/index.php?title=Asynchronous_module_definition&diff=231664911&oldid=prev
InternetArchiveBot: InternetArchiveBot hat 1 Archivlink(s) ergänzt und 0 Link(s) als defekt/tot markiert.) #IABot (v2.0.9.3
2023-03-10T05:21:49Z
<p><a href="/wiki/Benutzer:InternetArchiveBot" title="Benutzer:InternetArchiveBot">InternetArchiveBot</a> hat 1 Archivlink(s) ergänzt und 0 Link(s) als defekt/tot markiert.) #IABot (v2.0.9.3</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 10. März 2023, 07:21 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]-[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#Weitere_Verwendungen_der_Ausdrücke_Monolith_und_monolithisch|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[Teile_und_herrsche_(Informatik)|Teile und Herrsche]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]-[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#Weitere_Verwendungen_der_Ausdrücke_Monolith_und_monolithisch|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[Teile_und_herrsche_(Informatik)|Teile und Herrsche]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>{{Webarchiv|url=https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition |wayback=20160304121006 |text=Archivierte Kopie |archiv-bot=2022-10-05 21:59:22 InternetArchiveBot }}</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[Klasse_(Programmierung)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref>http://docs.weejot.com/developer/reference/amd.html</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>{{Webarchiv|url=https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition |wayback=20160304121006 |text=Archivierte Kopie |archiv-bot=2022-10-05 21:59:22 InternetArchiveBot }}</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[Klasse_(Programmierung)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref><ins style="font-weight: bold; text-decoration: none;">{{Webarchiv|url=</ins>http://docs.weejot.com/developer/reference/amd.html<ins style="font-weight: bold; text-decoration: none;"> |wayback=20130718212018 |text=Archivierte Kopie |archiv-bot=2023-03-10 05:21:49 InternetArchiveBot }}</ins></ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Vorteile der Modularisierung bestehen besonders im [[Webbrowser|Browser]]-Umfeld, wo JavaScript besonders häufig genutzt wird. Es werden nur die benötigten Module geladen, nicht jedoch alles, wie es beim synchronen Laden der Fall wäre. Das erhöht einerseits die Performanz des Codes und erleichtert andererseits das [[Debugger|Debuggen]], insbesondere bei Cross-Domain-Zugriffsproblemen.<ref>https://github.com/amdjs/amdjs-api/wiki/AMD</ref> Weiterhin ermöglicht es eine bessere Wiederverwendbarkeit einzelner Codefragmente, ohne diese per Kopieren und Einfügen oder serverseitige Verkettung (''server side concatenation'') transportieren zu müssen. Daraus ergibt sich eine Verringerung der Nutzung [[Variable (Programmierung)#Variablen in einer Blockstruktur|globaler Variablen]] auf ein Minimum und reduziert so die durch Namespace Pollution entstehenden Probleme signifikant.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Vorteile der Modularisierung bestehen besonders im [[Webbrowser|Browser]]-Umfeld, wo JavaScript besonders häufig genutzt wird. Es werden nur die benötigten Module geladen, nicht jedoch alles, wie es beim synchronen Laden der Fall wäre. Das erhöht einerseits die Performanz des Codes und erleichtert andererseits das [[Debugger|Debuggen]], insbesondere bei Cross-Domain-Zugriffsproblemen.<ref>https://github.com/amdjs/amdjs-api/wiki/AMD</ref> Weiterhin ermöglicht es eine bessere Wiederverwendbarkeit einzelner Codefragmente, ohne diese per Kopieren und Einfügen oder serverseitige Verkettung (''server side concatenation'') transportieren zu müssen. Daraus ergibt sich eine Verringerung der Nutzung [[Variable (Programmierung)#Variablen in einer Blockstruktur|globaler Variablen]] auf ein Minimum und reduziert so die durch Namespace Pollution entstehenden Probleme signifikant.</div></td>
</tr>
</table>
InternetArchiveBot
https://de.wikipedia.org/w/index.php?title=Asynchronous_module_definition&diff=227725673&oldid=prev
At40mha: Abschnittlink korrigiert
2022-11-06T14:06:59Z
<p>Abschnittlink korrigiert</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 6. November 2022, 16:06 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]-[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#<del style="font-weight: bold; text-decoration: none;">Weitere Verwendungen der Ausdrücke „Monolith“ und „monolithisch“</del>|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[Teile_und_herrsche_(Informatik)|Teile und Herrsche]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]-[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#<ins style="font-weight: bold; text-decoration: none;">Weitere_Verwendungen_der_Ausdrücke_Monolith_und_monolithisch</ins>|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[Teile_und_herrsche_(Informatik)|Teile und Herrsche]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>{{Webarchiv|url=https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition |wayback=20160304121006 |text=Archivierte Kopie |archiv-bot=2022-10-05 21:59:22 InternetArchiveBot }}</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[Klasse_(Programmierung)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref>http://docs.weejot.com/developer/reference/amd.html</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>{{Webarchiv|url=https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition |wayback=20160304121006 |text=Archivierte Kopie |archiv-bot=2022-10-05 21:59:22 InternetArchiveBot }}</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[Klasse_(Programmierung)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref>http://docs.weejot.com/developer/reference/amd.html</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
</tr>
</table>
At40mha
https://de.wikipedia.org/w/index.php?title=Asynchronous_module_definition&diff=226797843&oldid=prev
InternetArchiveBot: InternetArchiveBot hat 1 Archivlink(s) ergänzt und 0 Link(s) als defekt/tot markiert.) #IABot (v2.0.9.2
2022-10-05T21:59:24Z
<p><a href="/wiki/Benutzer:InternetArchiveBot" title="Benutzer:InternetArchiveBot">InternetArchiveBot</a> hat 1 Archivlink(s) ergänzt und 0 Link(s) als defekt/tot markiert.) #IABot (v2.0.9.2</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 5. Oktober 2022, 23:59 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]-[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#Weitere Verwendungen der Ausdrücke „Monolith“ und „monolithisch“|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[Teile_und_herrsche_(Informatik)|Teile und Herrsche]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]-[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#Weitere Verwendungen der Ausdrücke „Monolith“ und „monolithisch“|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[Teile_und_herrsche_(Informatik)|Teile und Herrsche]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[Klasse_(Programmierung)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref>http://docs.weejot.com/developer/reference/amd.html</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref><ins style="font-weight: bold; text-decoration: none;">{{Webarchiv|url=</ins>https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition<ins style="font-weight: bold; text-decoration: none;"> |wayback=20160304121006 |text=Archivierte Kopie |archiv-bot=2022-10-05 21:59:22 InternetArchiveBot }}</ins></ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[Klasse_(Programmierung)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref>http://docs.weejot.com/developer/reference/amd.html</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Vorteile der Modularisierung bestehen besonders im [[Webbrowser|Browser]]-Umfeld, wo JavaScript besonders häufig genutzt wird. Es werden nur die benötigten Module geladen, nicht jedoch alles, wie es beim synchronen Laden der Fall wäre. Das erhöht einerseits die Performanz des Codes und erleichtert andererseits das [[Debugger|Debuggen]], insbesondere bei Cross-Domain-Zugriffsproblemen.<ref>https://github.com/amdjs/amdjs-api/wiki/AMD</ref> Weiterhin ermöglicht es eine bessere Wiederverwendbarkeit einzelner Codefragmente, ohne diese per Kopieren und Einfügen oder serverseitige Verkettung (''server side concatenation'') transportieren zu müssen. Daraus ergibt sich eine Verringerung der Nutzung [[Variable (Programmierung)#Variablen in einer Blockstruktur|globaler Variablen]] auf ein Minimum und reduziert so die durch Namespace Pollution entstehenden Probleme signifikant.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Vorteile der Modularisierung bestehen besonders im [[Webbrowser|Browser]]-Umfeld, wo JavaScript besonders häufig genutzt wird. Es werden nur die benötigten Module geladen, nicht jedoch alles, wie es beim synchronen Laden der Fall wäre. Das erhöht einerseits die Performanz des Codes und erleichtert andererseits das [[Debugger|Debuggen]], insbesondere bei Cross-Domain-Zugriffsproblemen.<ref>https://github.com/amdjs/amdjs-api/wiki/AMD</ref> Weiterhin ermöglicht es eine bessere Wiederverwendbarkeit einzelner Codefragmente, ohne diese per Kopieren und Einfügen oder serverseitige Verkettung (''server side concatenation'') transportieren zu müssen. Daraus ergibt sich eine Verringerung der Nutzung [[Variable (Programmierung)#Variablen in einer Blockstruktur|globaler Variablen]] auf ein Minimum und reduziert so die durch Namespace Pollution entstehenden Probleme signifikant.</div></td>
</tr>
</table>
InternetArchiveBot
https://de.wikipedia.org/w/index.php?title=Asynchronous_module_definition&diff=195202776&oldid=prev
Wruedt: Abschnittlink korrigiert
2019-12-25T08:37:18Z
<p>Abschnittlink korrigiert</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 25. Dezember 2019, 10:37 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]-[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#<del style="font-weight: bold; text-decoration: none;">Allgemein</del>|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[Teile_und_herrsche_(Informatik)|Teile und Herrsche]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]-[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#<ins style="font-weight: bold; text-decoration: none;">Weitere Verwendungen der Ausdrücke „Monolith“ und „monolithisch“</ins>|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[Teile_und_herrsche_(Informatik)|Teile und Herrsche]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[Klasse_(Programmierung)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref>http://docs.weejot.com/developer/reference/amd.html</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[Klasse_(Programmierung)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref>http://docs.weejot.com/developer/reference/amd.html</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
</tr>
</table>
Wruedt
https://de.wikipedia.org/w/index.php?title=Asynchronous_module_definition&diff=177458443&oldid=prev
Wikinger08: /* Einsatz */
2018-05-15T18:47:10Z
<p><span class="autocomment">Einsatz</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 15. Mai 2018, 20:47 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 12:</td>
<td colspan="2" class="diff-lineno">Zeile 12:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Einsatz ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Einsatz ==</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Das AMD-Format sieht eine spezielle Moduldefinition bzw. Komponentendefinition vor, welche die Deklaration und das korrekte Laden von Abhängigkeiten ermöglicht. Die Moduldefinition erfolgt somit auf der Basis von Programmierkonventionen. Diese Konvention hat sich bei vielen frei verfügbaren Javascript-Bibliotheken, wie z.<del style="font-weight: bold; text-decoration: none;"> </del>B. jQuery oder Socket.<del style="font-weight: bold; text-decoration: none;">io</del>, durchgesetzt. </div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Das AMD-Format sieht eine spezielle Moduldefinition bzw. Komponentendefinition vor, welche die Deklaration und das korrekte Laden von Abhängigkeiten ermöglicht. Die Moduldefinition erfolgt somit auf der Basis von Programmierkonventionen. Diese Konvention hat sich bei vielen frei verfügbaren Javascript-Bibliotheken, wie z.<ins style="font-weight: bold; text-decoration: none;">&nbsp;</ins>B. <ins style="font-weight: bold; text-decoration: none;">[[</ins>jQuery<ins style="font-weight: bold; text-decoration: none;">]]</ins> oder <ins style="font-weight: bold; text-decoration: none;">[[</ins>Socket.<ins style="font-weight: bold; text-decoration: none;">IO]]</ins>, durchgesetzt. </div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="javascript"></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="javascript"></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>define("Name des Moduls", ["Abhängigkeit1", "Abhängigkeit2"], factory);</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>define("Name des Moduls", ["Abhängigkeit1", "Abhängigkeit2"], factory);</div></td>
</tr>
</table>
Wikinger08
https://de.wikipedia.org/w/index.php?title=Asynchronous_module_definition&diff=163236344&oldid=prev
WA1TF0R am 3. März 2017 um 20:33 Uhr
2017-03-03T20:33:08Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 3. März 2017, 22:33 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]<del style="font-weight: bold; text-decoration: none;">–</del>[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#Allgemein|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[Teile_und_herrsche_(Informatik)|Teile und Herrsche]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Asynchronous module definition''' ('''AMD''') ist eine [[JavaScript]]<ins style="font-weight: bold; text-decoration: none;">-</ins>[[Programmierschnittstelle]], mit deren Hilfe [[Modul (Software)|Module]] und ihre Abhängigkeiten asynchron geladen werden können. Es bildet dadurch zwei grundlegende Konzepte der Software-Entwicklung, Modularisierung und Wiederverwendung, in der ansonsten [[Funktionale Programmierung|funktional]] und [[Monolith#Allgemein|monolithisch]] aufgebauten JavaScript-Umgebung ab. Die Modularisierung erlaubt die Aufteilung einer Javascript-Anwendung in einzelne Teilkomponenten, welche separat entwickelt und getestet werden können ([[Teile_und_herrsche_(Informatik)|Teile und Herrsche]]). Aufgrund von klaren Schnittstellen können AMD-Module in anderen Softwareprojekten wiederverwendet werden.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[Klasse_(Programmierung)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref>http://docs.weejot.com/developer/reference/amd.html</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Vorgehensweise basiert weitestgehend auf dem [[Inversion of Control|Inversion-of-Control]]-[[Entwurfsmuster]] (IoC Pattern). Das Modul entspricht dabei dem Begriff der Bean in IoC.<ref>https://docs.jboss.org/author/display/GTNPORTAL34/GDG-Asynchronous+Module+Definition</ref> Dadurch wird es ermöglicht, dass auch JavaScript modular aufgebaut werden kann. Das Resultat sind Module, die vergleichbar mit [[Java (Programmiersprache)|Java]]-[[Klasse_(Programmierung)|Klassen]] sind, und auch genauso durch Vererbung erweitert werden können.<ref>http://docs.weejot.com/developer/reference/amd.html</ref> Jedes Modul muss dabei – analog zur Java-Klasse – in einer eigenen [[Datei]] gespeichert sein.</div></td>
</tr>
</table>
WA1TF0R
https://de.wikipedia.org/w/index.php?title=Asynchronous_module_definition&diff=158569133&oldid=prev
178.203.38.116: /* Einsatz */ Fehler im Programmcode (überzählige geschweifte Klammer) entfernt
2016-10-08T10:46:02Z
<p><span class="autocomment">Einsatz: </span> Fehler im Programmcode (überzählige geschweifte Klammer) entfernt</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 8. Oktober 2016, 12:46 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 30:</td>
<td colspan="2" class="diff-lineno">Zeile 30:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return plotModuleExport;</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> return plotModuleExport;</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> };</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> };</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">}</del>);</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>);</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
</table>
178.203.38.116