Worin besteht der Unterschied zwischen zurückgestellten Skripts und Skripts am Ende des Seitenhauptteils?

10

HTML5 hat das Attribut defer für Skripts eingeführt, deren Laden in einer HTML-Seite verzögert werden kann. defer kann für alle Skripte verwendet werden, die nicht vor dem DOM geladen werden müssen (a.k.a verwirren Sie das DOM nicht, bevor es fertig ist).

Seit langem wird Web-Entwicklern geraten, alle Skripte, die nicht vor dem DOM geladen werden müssen, nicht auf der Seite head , sondern vor dem Ende des body -Tags zu platzieren.

Was ist der Unterschied zwischen der Verwendung von defer und der lang geübten Beratung? Ersetzt das erste das letztere?

Ich freue mich über jede Antwort. Danke.

    
rodrigoalves 01.11.2012, 18:04
quelle

1 Antwort

1
  

Sowohl Async- als auch Defer Scripts werden sofort heruntergeladen, ohne den Parser anzuhalten. Beide unterstützen einen optionalen Onload-Handler, um die allgemeine Notwendigkeit der Initialisierung zu erfüllen, die vom Skript abhängt.

Aus dem Webkit-Blog ist das Verhalten nicht notwendigerweise das gleiche alle Browser. Daher wäre die Leistung besser, wenn die Skripts noch am Ende sind, da sie später heruntergeladen werden.

Edit 2017: Browser-Unterstützung ist jetzt viel besser, so dass Sie wahrscheinlich mit async / defer Skripte im Kopf durchkommen können. Es ist wahrscheinlich immer noch eine sicherere Wahl, sie auf den Boden zu stellen; neue Browser werden sie immer noch herunterladen, auch wenn sie nicht im Kopf sind.

    
El Yobo 01.11.2012, 18:21
quelle