Skript-Element mit Async-Attribut weiterhin Browser-Render-Block?

1 Antwort

2

Die Ausführung eines beliebigen Skripts blockiert immer das Parsen, Rendern und Ausführen anderer Skripte auf derselben Registerkarte. Das Attribut async ändert das nicht.

Das einzige, was async tut, ist, dem Browser mitzuteilen, dass das Skript abgerufen werden soll (vorausgesetzt, es handelt sich um eine Remote-Datei), ohne diese Aktivitäten zu blockieren.

Nachdem das Skript heruntergeladen wurde, beginnt das Skript bei der nächsten verfügbaren Gelegenheit (direkt nachdem das aktuelle Skript, falls vorhanden, ausgeführt wird, ausgeführt zu werden; ein neues Skript unterbricht natürlich kein laufendes Skript). Sobald das passiert, ist Ihr Rendering blockiert. Bei einem schnellen Webserver erfolgt das Herunterladen so schnell, dass async überhaupt keinen Unterschied macht.

Wenn Sie nicht möchten, dass Ihre Skripts das Rendering anhalten, verwenden Sie defer attribute anstelle von async . Dies verzögert die Ausführung des Skripts, bis das Dokument vollständig geladen ist.

Mehr zu diesem hier .

    
max 20.12.2016 05:44
quelle