2016-06-17 21 views
1

Ich habe eine Website, die ich online und offline arbeiten möchte. Ich möchte die Ladezeit verringern, also habe ich die langsamen Lade-Skripte minimiert. Es hat nicht genug funktioniert. Vor Ort benötigen einige der Skripts 4-6 Sekunden zum Laden.Wie verknüpfe ich Skripte extern und intern?

Ich weiß, dass das externe Verknüpfen von Skripts es drastisch beschleunigt. Ich habe es versucht und es funktioniert. Einige Benutzer haben jedoch keinen Internetzugang. Gibt es eine Möglichkeit, eine Gruppe von Skripten mit einer externen Site zu verknüpfen, und lokal, wenn sie keinen Internetzugang haben?

<script src="js/jquery-1.9.1.min.js" type="text/javascript"></script> 
<script src="js/jquery.dataTables.min.js" type="text/javascript"></script> 
<script src="ui/jquery-ui.min.js" type="text/javascript"></script> 

Antwort

1

Sie im Grunde so etwas wie this answer. tun kann, ist die Idee, dass Sie die Internet-basierte Skript für jQuery zu laden versuchen. Danach machen Sie ein normales Skript, in dem Sie überprüfen, ob jQuery === undefined. Wenn dies der Fall ist, möchten Sie die lokale Kopie laden.

Grundsätzlich ein Beispiel von dem, was Sie tun möchten:

<script src="[jQueryURL]" type="text/javascript"></script> 
<script src="[dataTablesURL]" type="text/javascript"></script> 
<script src="[jQueryUIURL]" type="text/javascript"></script> 
<script type="text/javascript"> 
    if(jQuery === undefined) { 
     var script = document.createElement("script"); 
     script.type = "text/javascript"; 
     script.src = "js/jquery-1.9.1.min.js"; 
     document.getElementsByTagName('head')[0].appendChild(script); 
     //repeat for other two scripts here 
    } 
</script> 

Was passiert, ist, dass es die Skripte in Frage zu laden versucht, und danach wird es prüfen, ob jQuery definiert ist. Wenn dies nicht der Fall ist, bedeutet dies, dass die Skripts nicht geladen wurden. Daher möchten Sie die lokalen Versionen laden und sie an Ihren Header anhängen.

+3

Nizza Ressource laden, bitte versuchen Sie Ihre Antwort mit einigen Code zu ergänzen. – DaniP

+1

Der einzige Grund, warum ich nicht war, ist, weil die angezeigte Antwort identisch mit dem Code ist, den ich vorgestellt hätte. – Polantaris

+0

Es ist egal, es ist besser, den Code als nur den Link zu enthalten, sonst könnte es nur ein Kommentar oder eine Stimme für das Duplizieren, ändern Sie diesen Code, um genau zu adressieren, was Op will und es auf Ihre Antwort könnte ein besserer Weg sein. Und verbessern Sie Ihre Antwort, um Upvotes zu bekommen – DaniP

0

Stellen Sie sicher, dass das Skript eine globale Variable deklariert, für die Sie testen können. Erzeugen Sie dann ein lokales Skript, das das Element lädt, wenn das externe Skript nicht geladen werden kann (was Sie durch Testen auf diese Variable ermitteln können).

<script src="http://example.com/example.js"></script> 
<script> 
    if !(window.Example) { 
     document.write('<script src="../scripts/example.js"><\/script>'); 
    } 
</script> 
0

<script type="text/javascript"> 
 
\t if(navigator.onLine) 
 
\t { 
 
\t \t alert("Connected"); 
 
\t } 
 
\t else 
 
\t { 
 
\t \t alert("Not Connected"); 
 
\t } 
 
</script>

zuerst prüfen, ob Internet-Verbindung bestehen dann externe Datei andere weise Last interne Datei

Verwandte Themen