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 |