Atrybut async w HTML <script>
Definicja i użycie
async
Atrybut jest logicznym atrybutem.
Jeśli ustawiono async
Atrybut, skrypt będzie pobierany równolegle podczas analizowania strony i natychmiast wykonany, gdy będzie dostępny. Po pełnym pobraniu skryptu, analiza strony zostanie przerwana, skrypt zostanie wykonany, a następnie kontynuowana analiza reszty strony.
Uwaga:async
Atrybut jest dostępny tylko dla zewnętrznych skryptów (i powinien być używany tylko, gdy istnieje atrybut src).
Uwaga:Zewnętrzne skrypty można wykonywać na wiele sposobów:
- Jeśli ustawiono async: skrypt będzie pobierany równolegle podczas analizowania strony i natychmiast wykonany, gdy będzie dostępny (przed zakończeniem analizowania strony)
- Jeśli ustawiono defer (ale nie async): skrypt będzie pobierany równolegle podczas analizowania strony i wykonany po zakończeniu analizowania strony
- Jeśli nie ma ani async, ani defer: skrypt jest natychmiast pobierany i wykonywany, blokując analizowanie strony, aż skrypt zostanie wykonany
Przykład
Wskazane skrypty będą pobierane równolegle podczas analizowania strony i natychmiast wykonywane, gdy będą dostępne:
<script src="demo_async.js" async></script>
Gramatyka
<script async>
Asynchroniczne wykonywanie skryptów
Domyślnym zachowaniem przeglądarki podczas napotkania elementu script jest zatrzymanie przetwarzania strony podczas ładowania i wykonywania skryptu. Każdy element script wykonywany jest sekwencyjnie (według określonej kolejności) synchronicznie (w trakcie ładowania i wykonywania skryptu nie zajmuje się niczym innym).
Jako domyślny sposób przetwarzania skryptów, synchroniczne wykonywanie w kolejności ma swoje znaczenie. Jednak niektóre skrypty nie wymagają takiego przetwarzania, dla tego typu skryptów można użyć async
Atrybut poprawia jego wydajność. Przykładem tego jest skrypt śledzący (tracking script). Taki skrypt może raportować historię odwiedzin użytkownika na stronie, aby reklamy mogły być dostosowane i wyświetlane na podstawie nawyków użytkownika, lub zbierać statystyki odwiedzających strony do analizy, itp. Te skrypty są samowystarczalne i zazwyczaj nie wymagają interakcji z elementami dokumentu HTML. Opóźnienie wyświetlania strony w oczekiwaniu na ich załadowanie i wysłanie raportów do serwera nie ma sensu.
Użycie async
Po dodaniu atrybutu, przeglądarka będzie ładować i wykonywać skrypt asynchronicznie, podczas gdy będzie kontynuować analizowanie innych elementów HTML (w tym innych elementów script). Jeśli używane poprawnie, może to znacznie zwiększyć ogólną wydajność ładowania.
Uwaga:Użycie async
Jednym z ważnych konsekwencji atrybutu jest to, że skrypty w stronie mogą nie być wykonywane w kolejności, w której zostały zdefiniowane. Dlatego nie zaleca się używania go, jeśli skrypt używa funkcji lub wartości zdefiniowanych w innych skryptach. async
Atrybut.
Obsługa przeglądarek
Liczby w tabeli wskazują na pierwszą wersję przeglądarki, która w pełni obsługuje tę właściwość.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
8.0 | 10.0 | 3.6 | 5.1 | 15.0 |