Diese Frage hat mich jedes Mal beschäftigt, wenn ich meine JS-Dateien unten auf der Seite abgelegt habe. Wenn ich alle JS-Dateien unten vor dem schließenden Body--Tag einfüge, denke ich, dass der Browser zuerst alle HTML- und Stylesheets herunterlädt, dann den HTML- und CSS-Code analysiert und schließlich Anforderungen für JS-Dateien sendet. Also,
- Würde die Verwendung von defer für js-Dateien, die sich bereits unten befinden, einen Unterschied machen?
- Befinden sich nicht verzögerte Skripte am Ende, kurz bevor das Rendern von Body-Tags blockiert wird?
Eine weitere Frage, die ich habe, ist, ob ich alle JS-Dateien in den Head füge und defer für sie verwende. Wäre dies gleichbedeutend damit, alle JS-Dateien unten zu platzieren? Würde der Browser, wenn er js mit „defer“ im Head sieht, eine Anfrage an den Server stellen und dann den Rest der HTML-Datei weiter herunterladen, oder wird er die Anfrage erst an den Server stellen, nachdem alle HTML- und CSS-Dateien heruntergeladen wurden?
Soweit ich weiß, entspricht async defer und der einzige Unterschied besteht darin, dass die js beim Herunterladen ausgeführt werden, ohne die Reihenfolge der Dateien zu berücksichtigen. Also,
- Würde die Verwendung von async für js-Dateien, die sich bereits unten befinden, einen Unterschied machen, abgesehen von der Reihenfolge, in der sie ausgeführt werden?