Sobes.tech
Middle

Jaka jest różnica między tagami <script>, <script async> i <script defer>?

sobes.tech AI

Odpowiedź od AI

Zwykły <script>: przeglądarka zatrzymuje analizę HTML, ładuje i wykonuje skrypt, a następnie kontynuuje analizę. Blokuje wyświetlanie.

<script async>: skrypt jest ładowany asynchronicznie, analiza HTML jest kontynuowana. Skrypt jest wykonywany zaraz po załadowaniu, co może przerwać analizę HTML. Kolejność wykonywania skryptów nie jest gwarantowana.

<script defer>: skrypt jest ładowany asynchronicznie, analiza HTML jest kontynuowana. Wykonanie skryptu jest odłożone do czasu zakończenia analizy HTML i zbudowania drzewa DOM. Skrypty są wykonywane w kolejności ich występowania w HTML.

Atrybut Analiza HTML Ładowanie skryptu Wykonanie skryptu Zależność od kolejności
Brak Zatrzymuje się Blokujące Blokujące Gwarantowane
async Kontynuuje Nieblokujące Może przerwać analizę Nie gwarantowane
defer Kontynuuje Nieblokujące Po analizie HTML Gwarantowane