COMPUTER ENGINEER

Örneklere git
Blog
Next.js / ASP.NET Core / SQL6 dk çalışma
06/ 41

Tarayıcı ve frontend

Tarayıcı sayfayı nasıl çizer?

HTML’den piksellere: DOM, CSSOM, render ağacı, layout ve paint.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Tarayıcı HTML’i yukarıdan aşağı okuyarak DOM ağacını kurar. CSS dosyalarından CSSOM oluşur. İkisi birleşince render ağacı çıkar; tarayıcı her öğenin konumunu ve boyutunu hesaplar (layout) ve pikselleri boyar (paint). Son adımda katmanlar birleştirilir (composite).

CSS ‘render’ı engeller: stiller gelmeden tarayıcı içeriği çizmez, çünkü yanlış görünümü gösterip sonra düzeltmek kötü bir deneyimdir. Normal bir script etiketi ise HTML ayrıştırmasını durdurur; defer veya async işaretli script’ler indirme sırasında ayrıştırmanın devam etmesine izin verir. Next.js kendi script’lerini bu şekilde yükler.

Kullanıcının hissettiği hız bu adımlara bağlıdır. Ana içeriğin ne zaman göründüğü (LCP), sayfanın etkileşime ne kadar hızlı tepki verdiği (INP) ve öğelerin yüklenirken kayıp kaymadığı (CLS) Core Web Vitals metrikleridir. Boyutu bilinmeyen bir görsel geç yüklendiğinde altındaki metni iter; genişlik ve yükseklik vermek bunu önler.

NERESİNDE KULLANIRSIN?

Sunucu hızlı olsa bile kötü yüklenen bir sayfa yavaş hissedilir.

SIK YAPILAN HATA

Büyük bir JavaScript paketini head içinde senkron yüklemek ve ilk çizimi geciktirmek.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

Temsili örnek
<img src="/kapak.jpg" alt="Kapak" width="1600" height="900">

Genişlik ve yükseklik verilen görsel için yer önceden ayrılır; sayfa kaymaz.

Bu sayfa gerçek bir sunucuya veya veritabanına bağlanmaz. Kod örnekleri .NET 8, Next.js ve SQL Server için temsilîdir; süreler simülasyondaki örnek değerlerdir, ölçüm değildir. Örnekleri yalnız kendi geliştirme ortamında dene; gerçek bağlantı dizesi, token veya parola paylaşma.

02 / SIRA SENDE

Önce kendin dene.

Bir blog sayfasında başlık yüklenince aşağı kayıyor, çünkü üstteki kapak görseli geç geliyor. İki farklı çözüm öner.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
1) <img> için width/height veya CSS aspect-ratio vermek
2) Kapak için yer tutan bir kapsayıcı (aspect-ratio: 16/9) ve next/image ile boyut bildirmek

Sorun, tarayıcının görselin boyutunu bilmemesidir. Boyut önceden bilinirse yer ayrılır ve CLS düşer.