Gibt es einen Unterschied (Leistung, bewährte Vorgehensweisen usw.) zwischen der Verwendung eines einzelnen Skript-Tags mit eingebettetem Code oder der Verwendung mehrerer Skript-Tags mit demselben Code, der im gesamten HTML-Code verteilt ist?
Zum Beispiel:
<script>
foo();
</script>
...
<script>
bar();
</script>
gegen:
<script>
foo();
bar();
</script>
Vielen Dank
Mit inline Skript wie dem, was Sie zitiert haben, ist es unwahrscheinlich, dass much difference; Jedes Mal, wenn der HTML-Parser des Browsers auf ein script
-Tag stößt, gilt Folgendes:
"</script>"
sieht.document.write
ausführen.Eine Erhöhung der Häufigkeit, mit der diese Reihenfolge auftritt, kann theoretisch die Ladezeit Ihrer Seite erhöhen. Dies wirkt sich auch auf den Grad aus, in dem der Parser im Token-Stream nach vorne blicken kann, wodurch er möglicherweise weniger effizient ist.
All das klingt wirklich dramatisch, aber Sie müssten in den verschiedenen Browsern, die Sie interessieren, eine echte Seite profilieren, um festzustellen, ob sie eine Auswirkung auf die Realität hat.
Zusammengefasst, kombinieren Sie sie so viel, wie Sie dies vernünftigerweise können. Wenn Sie ein Paar nicht vernünftig kombinieren können, machen Sie sich nicht zu viele Sorgen, bis Sie ein reales Problem sehen.
Das obige ist für Inline-Skript. Wenn Sie über mehrere script
-Tags verfügen, die sich auf mehrere externe JavaScript-Dateien beziehen, haben Sie natürlich auch das Problem, dass jede dieser Dateien heruntergeladen werden muss. Das Initiieren einer HTTP-Anforderung ist (vergleichsweise) eine teure Angelegenheit und daher das Beste im großen und ganzen, diese in einer einzigen Datei zusammenzufassen.
Einige andere Dinge zu beachten:
script
-Tags in Ihrem HTML-Code verstreut sind, kann es schwierig sein, das Skript zu wartenMehr:
Die Kombination Ihrer Skripte so gut wie möglich ist meiner Meinung nach besser. Einige Browser müssen während der Ausführung von Skriptblöcken das Rendering anhalten. Antworten finden Sie unter: Javascript-Leistung: Mehrere Skriptblöcke Vs einzelner größerer Block
Bis zu diesem Punkt befand sich der gesamte JavaScript-Code in einem Tag. Dies muss nicht der Fall sein.
Sie können beliebig viele Tags in einem Dokument haben.
Die Tags werden so verarbeitet, wie sie angetroffen werden.
Hoffe das hilft.
Ich benutze mehrere Tags. Eine für die Diashow von Bildern und eine für die Diashow von Texten, sodass ich beide auf derselben Webseite haben kann - Diashow von Bildern und Diashow von Texten.
Einige argumentieren, dass es am besten ist, alle Skripts in einem einzigen Skriptblock oder einer einzelnen Skriptdatei zu kombinieren, nur das wirklich benötigte Javascript zu laden und es so spät wie möglich zu laden, um die Wiedergabe von HTML nicht zu verlangsamen.
Abgesehen davon bin ich sicher, dass die Verwendung eines einzelnen Skriptblocks schneller lädt als die Verwendung mehrerer Skriptblöcke, da sie einzeln ausgewertet werden müssen. Dieser Unterschied ist jedoch möglicherweise nicht erkennbar.