jquery dynamisches laden von externen Skript-Dateien, bevor Sie $(document).ready()
Derzeit habe ich eine jqueryUI.js referenzierte Datei durch eine <script>
tag.
Ich habe mehrere $(document).ready () - Funktionen, die die jquery-ui-Funktionen.
Ich versuche zu laden jqueryUI.js Datei, die dynamisch mit $.getScript
Habe ich versucht den folgenden code...
var scriptCntr = 0;
$(document.ready(function(){
scriptCntr ++;
$.getScript(path, function (data, textStatus) {
scriptCntr --;
});
while(scriptCntr!=0){
}
});
oben auf der Seite.
Die Idee ist, machen die $(document).ready () - warten Sie, bis die Datei heruntergeladen ist, aber die Logik geht an die WaitLoop und bleibt dort auf unbestimmte Zeit. Die Datei würde nicht herunterladen, wenn alle $(document).ready() wird ausgeführt.
Gibt es eine Möglichkeit zum download der jqueryUI.js Datei vor dem ersten $(document).ready() wird ausgeführt?
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie jQuery.holdReady(). Dies ermöglicht die Verzögerung der jQuery-ready-Ereignis erst nach dem script geladen hat.
Können Sie diesen code verwenden für dieses Ziel:
Benutze ich
$.getScript()
ausgiebig für scripts, die sich aufjQuery
heruntergeladen wird zunächst als$.getScript()
nicht instanziieren, bis jQuery geladen ist (es ist eine Methode von jQuery selbst, so kann nicht ausgeführt werden, es sei denn, qQuery erfolgreich geladen wurde, die Lösung eines jQuery-Abhängigkeit).Ein paar Randnotizen:
$.getScript()
Kräfte download, es NIE verwendet zwischengespeicherte Kopien. cane nützlich sein, wenn Sie wollen immer frische downloads. Sie können die$.ajax()
Methode, wenn Sie wollen, um die Zwischenspeicherung zu aktivieren. Dies ermöglicht eine ERHEBLICHE Leistung steigern, wenn das herunterladen großer Dateien wie jQuery-ui-auf den nachfolgenden Seiten. Ich werde ein Beispiel geben, am Ende dieser Antwort.Aufgrund der
$.getScript()
Methode mit der jqxhr Modell, Sie können überprüfen für einen fehlgeschlagenen script laden, und die exception wird geworfen. Die$.getScript()
Funktion hat eine.fail()
handler angehängt, Sie können es verwenden, wie diese...mit $.getScript()
mit $.ajax() (für caching-Zwecke)
Ich persönlich schreib die Fehlercodes auf dem Bildschirm, so dass ich sehen kann der Anschlag ein wenig einfacher als in einer Konsole, und ich habe gefunden, dass die Konsole.log-Ausgabe manchmal nicht für mich je nach meiner debug-software. Hilft sehr bei der Fehlersuche. Mit dieser Implementierung können Sie eine einfache dependency loader. Definieren Sie eine Reihe von Skripten ausführen einer Funktion, um das Feuer der
$.ajax()
Funktion, und etwas tun, wenn Sie fertig sind. Und voila, die Abhängigkeit aufgelöst. ReuireJAS dies tut, aber es ist ein Satz von Skripten und zusätzliche lod Zeiten. Sie haben jQuery bereits geladen wurde, also warum nicht!Beispiel der Auflösung von Abhängigkeiten bitte halten Sie credits, wenn Sie es verwenden,... 🙂
Dann nur diese beiden Zeilen auf Ihrem Haupt .html-oder .php-Seite
UND VOILA!!! Die einfachste Abhängigkeit loader habe ich trotzdem gefunden 🙂
Der Grund, warum ich diese Methode verwenden, ist für die Auflösung von Abhängigkeiten zwischen meinen Skripten. Jede Abhängigkeit-set ist definiert als ein array, und ich Schleife durch, Sie laden um, und ich bin glücklich 🙂