AMD-Modul
Das übergeordnete Ziel des AMD-Formats (Asynchronous Module Definition) besteht darin, aktuellen Entwicklern eine nutzbare modulare JavaScript-Lösung bereitzustellen.
Das AMD-Modulformat selbst ist ein Vorschlag, wie Module so definiert werden, dass sowohl Module als auch Abhängigkeiten asynchron geladen werden können. Es bietet viele einzigartige Vorteile, darunter die grundsätzliche Asynchronität und hohe Flexibilität, wodurch die häufige enge Kopplung zwischen Code und Modulidentität aufgehoben werden kann. Es wurde von vielen Projekten übernommen, darunter jQuery (1.7).
RequireJS
RequireJS ist eine Toolbibliothek, die hauptsächlich für die Client-Modulverwaltung verwendet wird. Es ermöglicht die Aufteilung des Client-Codes in Module für asynchrones oder dynamisches Laden, wodurch die Leistung und Wartbarkeit des Codes verbessert wird. Das Modulmanagement folgt den AMD-Vorgaben.
jQuery-Unterstützung für AMD
jQuery 1.7 unterstützt ab sofort die Registrierung von jQuery als asynchrones AMD-Modul. Es gibt viele kompatible Skriptlader (einschließlich RequireJS und Curl), die Module in einem asynchronen Modulformat laden können, was bedeutet, dass nicht viel Hacking erforderlich ist, um alles zum Laufen zu bringen. Sie können sich den Quellcode in jQuery 1.7 ansehen:
Die Funktionsweise besteht darin, dass der verwendete Skriptlader angibt, dass er mehrere jQuery-Versionen unterstützen kann, indem er eine Eigenschaft, define.amd.jQuery, als „true“ angibt. Wenn Sie an den spezifischen Implementierungsdetails interessiert sind, können Sie jQuery als benanntes Modul registrieren, da das Risiko besteht, dass es mit anderen Dateien zusammengefügt wird, die die Methode define() von AMD verwenden, ohne ein geeignetes Stitching-Skript zu verwenden versteht anonyme AMD-Moduldefinitionen.
Höhere Version von jQuery (1.11.1) entfernt die Definition von define.amd.jQuery:
Verwenden Sie jQuery in Require.js
Es ist sehr praktisch, jQuery in Require.js zu verwenden. Konfigurieren Sie es einfach, zum Beispiel:
JQuery-Plug-in in Require.js verwenden
Obwohl jQuery die AMD-API unterstützt, bedeutet dies nicht, dass das jQuery-Plug-in auch mit AMD kompatibel ist.Allgemeines jQuery-Plug-in-Format:
Die Verwendung von jQuery-UI-Komponenten in Require.js ist ähnlich. Ändern Sie einfach den jQuery Widget Factory-Code und laden Sie die Abhängigkeiten der jQuery-UI. Zum Beispiel:
Code kopieren