Ich versuche, meine Seiten zu optimieren, indem ich einige async
-Attribute in meine Skripte einfüge. Es scheint, mein Javascript zu brechen, da $(document).ready
ausgeführt wird, bevor alle Skripte geladen werden!
Ich habe gesehen, dass ich mein Problem lösen kann, indem ich $(window).load
anstelle von $(document).ready
stelle, aber ich habe mich gefragt, ob es eine bessere Lösung gibt.
Diese Lösung löst in meinem Fall 2 Probleme aus:
$(document).ready
ändern und allen Entwicklern sagen, sie nicht mehr zu benutzen Hast du Zaubertricks? Vielleicht alle Skripte am Ende? Verwenden Sie defer
anstelle von async
?
Nach einigen umfangreichen Recherchen kann ich definitiv sagen, dass es am besten ist, Skripte am Ende der Seite zu platzieren.
Yahoo stimmt mir zu: Ссылка
Google spricht nicht über diese Vorgehensweise und scheint asynchrone Skripts zu bevorzugen: Ссылка
IMHO, das Skript am Ende der Seite hat mehrere Vorteile gegenüber async / defer:
$(document).ready
oder $(window).load
verwenden
Der einzige Nachteil, den ich sehen kann, ist, dass der Browser die Downloads nicht parallelisieren kann. Ein guter Grund, async / defer stattdessen zu verwenden, ist, wenn Sie ein Skript haben, das vollständig unabhängig ist (Sie müssen sich nicht auf die Ausführungsreihenfolge verlassen) und das nicht zu einem bestimmten Zeitpunkt ausgeführt werden muss. Beispiel: Google Analytics.