Junior
Betikler genellikle neden body etiketinin sonunda bağlanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Sayfa renderlamasını engellemeden ve DOM öğelerine yükleme sonrası hemen erişim sağlamak için.
<head> veya <body> başlangıcına async veya defer öznitelikleri olmadan eklenen betikler, tarayıcının HTML'yi işlemesini ve sayfa renderını durdurur, ta ki betik yüklenip çalıştırılana kadar. Bu, sitenin görünür performansını yavaşlatır.
<body> sonunda ekleme, DOM ağacının zaten tamamen oluşturulmuş olduğunu garanti eder ve betik çalıştırıldığında doğrudan öğelerle etkileşime geçmeyi sağlar, sadece DOMContentLoaded veya load gibi olay işleyicileri kullanmaya gerek kalmadan.
async ve defer öznitelikleri, HTML işlemesini engellemeden betik yükleme konusunda daha esnek seçenekler sunan modern alternatiflerdir:
async: Betik asenkron olarak yüklenir ve yükleme sonrası hemen çalıştırılır, DOM tamamen yüklenmeden. Asenkron betiklerin çalışma sırası garanti edilmez.defer: Betik asenkron olarak yüklenir ve HTML tam olarak çözümlendikten sonra,DOMContentLoadedolayından önce çalıştırılır.deferile yüklenen betikler, belge içindeki sırasına göre çalıştırılır.