Script etiketindeki defer ve async özellikleri

front-end, javascript

Bir <script> etiketindeki **_defer_** ve **_async_** özellikleri nelerdir?

Her iki öz nitelik yoksa, komut dosyası eşzamanlı olarak indirilir ve yürütülür. Yürütmeyi bitirinceye kadar belgenin ayrıştırılması durduracaktır (varsayılan davranış). Komut dosyaları, karşılaşıldıkları sırada indirilir ve yürütülür.

defer öz niteliği, belge hala ayrıştırılırken komut dosyasını indirir, ancak DOMContentLoaded (DOM Nedir?) olay dinleyicisi içinde yürütmeye eşdeğer, yürütmeden önce belgenin ayrıştırılmasının tamamlanmasını bekler. erteleme komut dosyaları sırayla yürütülür.

olay dinleyicisi içinde yürütmeye eşdeğer, yürütmeden önce belgenin ayrıştırılmasının tamamlanmasını bekler. erteleme komut dosyaları sırayla yürütülür.


Async niteliği, belgeyi ayrıştırırken komut dosyasını indirir ancak ayrıştırmayı tamamlamadan önce komut dosyasını yürütmek için ayrıştırıcıyı duraklatır. Zaman uyumsuz komut dosyaları sırayla çalıştırılmaz.

Not: Her iki öz nitelik yalnızca, komut dosyasında bir src öz niteliği varsa (yani satır içi bir komut dosyası değil) kullanılmalıdır.

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

Notlar:

Bir defer betiğini <head> içine yerleştirmek, tarayıcının betiği sayfa ayrıştırma sırasında indirmesine izin verir ve bu nedenle betiği gövdenin sonundan önce yerleştirmekten daha iyi bir seçenektir.

Senaryolar birbirlerine güveniyorsa, erteleme kullanın.

DOM Nedir?