Was ist der Unterschied zwischen zurückgestellten Skripts und Skripts, die am Ende des Seitentexts platziert werden?

Lesezeit: 2 Minuten

HTML5 führte das ein defer Attribut für Skripte, 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 (auch bekannt als nicht mit dem DOM herumspielen, bevor es fertig ist).

Seit langem wird Webentwicklern geraten, alle Skripte, die nicht geladen werden müssen, vor dem DOM nicht in die Seite zu stellen head aber vor dem ende der body stattdessen taggen.

Was ist der Unterschied zwischen der Verwendung von defer und der lang geübte Rat? Ersetzt Ersteres Letzteres?

Ich freue mich über jede Antwort. Vielen Dank.

  • Ich glaube, dass das Skript immer noch heruntergeladen wird, auch wenn Sie defer verwenden, und es kann das Laden der gesamten Seite verlangsamen

    – Jewgeni

    1. November 2012 um 18:08 Uhr

  • Die Idee dahinter, das Skript ganz unten zu platzieren, besteht nicht nur darin, die Ausführung zu verzögern, sondern auch den Download zu verzögern

    – Jewgenij

    1. November 2012 um 18:09 Uhr

Benutzeravatar von El Yobo
El Yobo

Sowohl asynchrone als auch zurückgestellte Skripts beginnen sofort mit dem Herunterladen, ohne den Parser anzuhalten, und beide unterstützen einen optionalen Onload-Handler, um der allgemeinen Notwendigkeit gerecht zu werden, eine Initialisierung durchzuführen, die vom Skript abhängt.

Von dem WebKit-Blog, daher ist das Verhalten nicht unbedingt in allen Browsern gleich. Die Leistung wäre also besser, wenn die Skripte noch am Ende stehen, da sie später heruntergeladen werden.

Bearbeiten 2017: Die Browserunterstützung ist jetzt viel besser, sodass Sie wahrscheinlich mit asynchronen / zurückgestellten Skripten im Kopf davonkommen können. Es ist wahrscheinlich immer noch eine sicherere Wahl, sie ganz unten zu platzieren; neue Browser laden sie immer noch früh herunter, auch wenn sie nicht im Kopf sind.

Bearbeiten 2020: Heutzutage, es sei denn, Sie unterstützen sehr Bei alten Browsern sollten Sie einfach async/defer im Kopf verwenden.

  • Warum sollte die Leistung besser sein, wenn die Skripts später heruntergeladen werden? Wäre die Leistung nicht besser, wenn die Skripte so schnell wie möglich heruntergeladen würden?

    – Rudey

    17. Februar 2017 um 9:53 Uhr

  • @RuudLenders, weil der Support zu dieser Zeit lückenhaft war und so viele Browser die Skripte sofort herunterladen würden und dies das Rendern blockieren würde, bis das Skript heruntergeladen und ausgeführt wurde. Die Unterstützung ist jetzt, viereinhalb Jahre später, viel besser, aber der Unterschied in der Zeit, in der der Browser mit dem Herunterladen beginnt, ist winzig (wenn überhaupt, mit Vorbereitung), also würde ich sie immer noch am Ende des Körpers platzieren.

    – El Yobo

    12. Mai 2017 um 2:05 Uhr


1433930cookie-checkWas ist der Unterschied zwischen zurückgestellten Skripts und Skripts, die am Ende des Seitentexts platziert werden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy