Ich habe ein Projekt, das mehrere Require-Kontexte und dynamisch geladene jQuery-Versionen und Plugins verwendet. (Die jQuery-Versionen werden zentral bezogen und nicht inline sein). Die jQuery-Integrität für den Host und jeden Kontext sowie die Plugin-Isolation sind kritisch.RequireJS - jQuery-Versionen und Plugins in Kontexten isolieren
Ich schreibe eine Lader-Plugin für RequireJS die folgenden Anwendungsfälle zu behandeln:
innerhalb eines bestimmten- erfordern Kontext
- Und ohne die fn der Hosting-Seite zu beeinflussen oder zu jedem anderen Kontext benötigen, würde ich wie zu:
- laden jede Version von jQuery muss ich
- laden Plugins auf die fn meiner spezifischen jQuery Version
- Haben referentiellen Integrität auf einer jQuery benötigte Version, so dass jedes Modul in meinem erfordern Kontext kann Plugins teilen
Ich habe ein Beispielprojekt für den Lader mit Tests here.
Es ist in der letzten Bedingung fehlgeschlagen, wenn ich einen zweiten Anruf mit dem Lader, es bläst weg die vorherige Version.
Ich benutze auch eval, um die $ Referenzen in den geladenen Plugins auf den lokal geladenen jQuery-Versionsbereich zu isolieren. Irgendwelche Gedanken zu einem besseren Weg, dies zu tun, würden geschätzt werden.
Möchten Sie es einfach halten (dumm), wenn es eine einfachere/sauberere Lösung gibt.
Danke, viel.
Und eval vermeiden Sie eine serverseitige Skript verketten haben könnte 'definieren ([ 'jquery-Version'], Funktion (jQuery) { var $ = jQuery; '+ [das Plugin src] +'}); 'und dann laden Sie ein Plugin rufen Sie dieses Skript mit dem Namen des Plug-Ins und jquery in der Abfrage-String – wheresrhys