Sobes.tech
Middle

<script>, <script async> ve <script defer> etiketleri arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Standart <script> etiketi, HTML'nin ayrıştırmasını durdurur, betiği yükler ve çalıştırır, ardından ayrıştırma devam eder.

<script async> betiği asenkron olarak yükler, HTML ayrıştırması devam ederken. Betik, yükleme sonrası hemen çalıştırılır. Çalıştırma sırası garanti edilmez.

<script defer> betiği asenkron olarak yükler, HTML ayrıştırması devam ederken. Betik, yalnızca HTML ayrıştırması tamamlandıktan sonra, DOMContentLoaded olayı tetiklenmeden önce çalıştırılır. defer ile yüklenen betiklerin çalışma sırası, HTML'deki görünümlerine göre korunur.

Karşılaştırmalı tablo:

Öznitelik HTML ayrıştırması sırasında betik yükleniyor Betik çalıştırma Çalışma sırasını koruma
Yok Duraklatır Yükleme sonrası hemen Evet
async Devam eder Yükleme sonrası hemen (ayrıştırmayı kesebilir) Hayır
defer Devam eder HTML ayrıştırması tamamlandıktan sonra Evet

Örnek:

<!-- Normal betik - ayrıştırmayı engeller -->
<script src="script1.js"></script>

<!-- Asenkron betik - ayrıştırmayı engellemez, yükleme sonrası hemen çalışır -->
<script src="script2.js" async></script>

<!-- Ertelenmiş betik - ayrıştırmayı engellemez, HTML ayrıştırmasından sonra çalışır -->
<script src="script3.js" defer></script>
<script src="script4.js" defer></script> <!-- script3.js'den sonra çalışır -->