Async i defer co to jest i do czego może się przydać?

Strony internetowe stają się coraz bardziej interaktywne i złożone, ważne jest, aby zapewnić szybkie ładowanie i wydajność. Jednym z narzędzi, które może pomóc w tym procesie, są atrybuty „async” i „defer” w tagach skryptów HTML. W tym artykule dowiesz się, czym są te atrybuty i jak mogą się przydać w optymalizacji strony internetowej.

Async

Atrybut „async” w tagu skryptu HTML oznacza, że skrypt będzie pobierany i wykonywany asynchronicznie, nie blokując procesu ładowania strony. Oznacza to, że przeglądarka nie będzie czekać na pobranie i wykonanie skryptu, zanim przejdzie do kolejnych elementów strony. Zamiast tego, skrypt będzie pobierany równolegle z innymi zasobami strony, takimi jak obrazy czy arkusze stylów.

Przykład:

<script src="script.js" async></script>

Warto jednak pamiętać, że skrypty z atrybutem „async” mogą być wykonywane w dowolnej kolejności, co może prowadzić do problemów, jeśli skrypty są ze sobą powiązane. Dlatego warto używać „async” tylko wtedy, gdy skrypt nie zależy od innych skryptów lub elementów strony.

Defer

Atrybut „defer” w tagu skryptu HTML również pozwala na asynchroniczne pobieranie skryptu, ale z jedną ważną różnicą – skrypt z atrybutem „defer” jest wykonywany dopiero po zakończeniu procesu ładowania strony. Oznacza to, że skrypt zostanie wykonany w kolejności, w jakiej występują w kodzie HTML, a nie w kolejności pobierania.

Przykład:

<script src="script.js" defer></script>

Dzięki temu, skrypty z atrybutem „defer” mogą być używane do manipulacji elementami strony, które są już załadowane, co może być przydatne w przypadku skryptów, które zależą od konkretnych elementów strony.

Zastosowanie

Oba atrybuty, „async” i „defer”, mogą być przydatne w optymalizacji strony internetowej. Oto kilka zastosowań tych atrybutów:

  • Poprawa czasu ładowania strony – dzięki asynchronicznemu lub opóźnionemu wykonywaniu skryptów, przeglądarka może równolegle pobierać inne zasoby strony, co przyspiesza jej ładowanie.
  • Zminimalizowanie blokowania renderowania – skrypty, które są wykonywane synchronicznie, mogą blokować proces renderowania strony, co prowadzi do dłuższego czasu ładowania. Użycie „async” lub „defer” pozwala na uniknięcie tego problemu.
  • Poprawa dostępności strony – asynchroniczne lub opóźnione ładowanie skryptów może pomóc w poprawie dostępności strony dla użytkowników o wolnym łączu internetowym.

Przykład użycia

Aby lepiej zrozumieć, jak działają atrybuty „async” i „defer”, przyjrzyjmy się prostemu przykładowi. Załóżmy, że mamy stronę internetową z dużym skryptem JavaScript, który manipuluje elementami strony. Bez użycia „async” lub „defer”, skrypt ten zostanie pobrany i wykonany synchronicznie, blokując proces ładowania strony. Jednak dodanie atrybutu „defer” do tagu skryptu spowoduje, że skrypt zostanie pobrany asynchronicznie, ale wykonany dopiero po zakończeniu ładowania strony, co pozwoli na szybsze ładowanie i renderowanie strony.

Podsumowanie

Atrybuty „async” i „defer” w tagach skryptów HTML są przydatnym narzędziem w optymalizacji strony internetowej. „Async” pozwala na asynchroniczne pobieranie i wykonywanie skryptów, nie blokując procesu ładowania strony, podczas gdy „defer” pozwala na opóźnione wykonywanie skryptów po zakończeniu ładowania strony. Oba atrybuty mogą przyspieszyć czas ładowania strony, poprawić dostępność i minimalizować blokowanie renderowania. Pamiętaj jednak, że należy używać ich ostrożnie i zrozumieć ich wpływ na działanie strony.