EDITED zu klären:Laden von jQuery mit RequireJS - Was ist besser, eine lokale Version oder ein CDN?
In Bezug auf die Leistung (obwohl das immer noch ein wilder Begriff ist, ich weiß), was besser ist - eine lokale Version oder eine CDN-Version von jQuery, über RequireJS Laden?
Für die Aufzeichnung enthält RequireJS online doc einige Passagen, die CDN abzuschrecken scheint, obwohl ich nicht wirklich sicher, 100% bin, was es bedeutet:
nicht mischte, CDN Laden mit Shim-config in einem Build. Beispielszenario: Sie laden jQuery aus dem CDN, aber verwenden Sie die Shim-Konfiguration, um etwas zu laden wie die Aktienversion von Backbone, die von jQuery abhängt. Wenn Sie den Build tun, achten Sie darauf, jQuery in die erstellte Datei zu integrieren und laden Sie nicht es aus dem CDN. Ansonsten wird Backbone in der eingebauten Datei eingebunden und es wird ausgeführt, bevor der CDN-geladene jQuery geladen wird. Dies ist , da die Shim-Konfiguration nur das Laden der Dateien verzögert, bis Abhängigkeiten geladen sind, aber keine automatische Umbruch von definieren. Nach einem Build sind die Abhängigkeiten bereits inline, die Shim-Konfiguration kann die Ausführung des nicht definierten() 'd-Codes erst später verzögern. define() 'd-Module funktionieren mit CDN-geladenem Code nach einem Build, da sie ihre Quelle in Define-Factory-Funktion korrekt umhüllen, die nicht ausgeführt wird, bis Abhängigkeiten geladen werden. Also die Lektion: shim config ist eine Stop-Gap-Maßnahme für nicht-modularen Code, Legacy-Code. define() 'd Module sind besser.
Theoratically, eine CDN jQuery-Datei in 1 weiteren HTTP-Request führen würde (kann nicht mit anderen JS-Dateien mit r.js zusammengeführt werden), hat aber den möglichen Nutzen, die Ihre Besucher bereits die CDN Cache gespeichert haben Version von anderen Websites, die sie besucht haben.
Allerdings, wenn ich es richtig von den Informationen gegoogelt bekam, Sie noch brauchen eine lokale jQuery r.js kopieren bieten, als die resultierende minimierte JS-Datei benötigen würde immer noch eine Kopie der jQuery enthalten Modul, um die Konsistenz der Abhängigkeit zu gewährleisten. Das würde dazu führen, dass jQuery sowohl über local als auch über CDN geladen wird. (Hoffe ich habe diesen Teil richtig?)
Also, welcher Weg ist besser?
Berücksichtigen Sie, dass, wenn er die lokale Kopie lädt, wird es in eine signle js-Datei verkettet? Durch das Laden der CDN-Version fügen Sie den Overhead einer zusätzlichen Anfrage zu einer anderen Domain hinzu ... – JasonStoltz