Reihenfolge der geladenen JS Files

jeipack

Erfahrenes Mitglied
Hi
Ich habe folgenden Code vor dem schliessenden body-tag:

Javascript:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js" type="text/javascript"></script>
<script>
    if (!window.jQuery) document.write('<script src="/typo3conf/ext/my_template/Resources/Public/js/jquery-1.12.2.min.js"><\/script>')
</script>

<script type="text/javascript" src="typo3temp/vhs-assets-main-script.js?1464793062"></script>
<script type="text/javascript" src="typo3temp/vhs-assets-fancyboxjs.js?1464793062"></script>
<script type="text/javascript" src="typo3temp/vhs-assets-enquire.js?1464793062"></script>


Als ich Tests machte mit einer (simulierten) langsamen Verbindung kam es vor, dass die anderen JS-Files geladen wurden, aber jQuery nicht. Was dazu führte, dass die Webseite nicht funktionierte. Ich habe das wirklich nur mit einer SEHR langsamen Leitung hinbekommen. Frage mich aber, wie mache ich sicher dass jQuery geladen wurde befor Javascript aus den anderen Files ausgeführt wird?

Hat da wer Erfahrungen?
 
Eine Möglichkeit wäre die Skripte von JQuery laden zu lassen.
Die kann man mittels der JQuery Methode getScript() nachladen und ausführen.

Das könnte z.B. so aussehen:
Javascript:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js" type="text/javascript"></script>
<script>
    if (!window.jQuery) document.write('<script src="/typo3conf/ext/my_template/Resources/Public/js/jquery-1.12.2.min.js"><\/script>')

    if(window.jQuery) {
         $.getScript( "typo3temp/vhs-assets-main-script.js?1464793062")
               .fail(function( jqxhr, settings, exception ) {
                   alert("Skript 1 konnte nicht geladen werden!" );
               });

         $.getScript( "typo3temp/vhs-assets-fancyboxjs.js?1464793062")
               .fail(function( jqxhr, settings, exception ) {
                   alert("Skript 2 konnte nicht geladen werden!" );
               });

         $.getScript( "typo3temp/vhs-assets-enquire.js?1464793062")
               .fail(function( jqxhr, settings, exception ) {
                   alert("Skript 3 konnte nicht geladen werden!" );
               });
    } else {
         alert("JQuery konnte nicht geladen werden!");
    }
</script>
 
Zurück