SPA Router (Single Page Application - sayfa yeniden yüklenmeden içerik değişimi) kullanılıyor ama kullanıcı ne olduğunu anlamıyor.
❌ Link tıklandığında → Hiçbir geri bildirim yok
❌ Prefetch cache varsa → Instant navigation, loading hiç gösterilmiyor
❌ Cache yoksa → 1-2 saniye bekliyor, ama kullanıcı bilmiyor
⚠️ Sonuç: Kullanıcı "çalışmıyor mu" diye sürekli tıklıyor
Play butonu tıklandığında API'ye istek atılıyor, stream yükleniyor, ama kullanıcı bekliyor mu bilmiyor.
❌ İlk tıklama → API stream URL çekiyor (1-2 saniye)
❌ HLS manifest yükleniyor → Play butonu değişmiyor
❌ Stream hazırlanıyor → Kullanıcı bekliyor ama göremez
⚠️ Sonuç: "Neden başlamıyor?" diye tekrar tıklıyor
Spotify tarzı loading overlay mevcut ama sadece SPA navigation için çalışıyor, şarkı geçişlerinde yok.
✅ Overlay tasarımı güzel (spinning loader + "Yükleniyor" text)
❌ Sadece isLoading flag'i ile kontrol ediliyor
❌ Şarkı değişiminde bu flag set edilmiyor
⚠️ Sonuç: Loading var ama kullanıcı görmüyor
Modern web uygulamaları (Spotify, YouTube Music) anlık feedback veriyor, Muzibu vermiyor.
❌ "Tıkladım ama bir şey olmadı" → Tekrar tıklıyor
❌ "Yavaş mı yoksa bozuk mu?" → Şüphe duyuyor
❌ "Yüklendiğini nasıl anlarım?" → Confusion
⚠️ Sonuç: Profesyonel görünmüyor, güven vermiyor
Link tıklandığında hemen loading gösterilsin, kullanıcı tıkladığını anlasın.
isLoading = true set etsinisLoading = false set etsinKullanıcı link tıkladığında → Hemen loading overlay görecek → "Yükleniyor" yazısı → Sayfa geldiğinde smooth geçiş → Kullanıcı ne olduğunu bilecek, güven duyacak.
Play butonu tıklandığında spinning animasyon gösterilsin, şarkı hazır olunca normal icon.
isSongLoading = falseisSongLoading = trueisSongLoading = falseNormal (Durduk)
Loading (Yeni!)
Çalıyor
Kullanıcı play tıkladığında → Buton spinning animasyon gösterecek → "Yükleniyor" hissi verecek → Stream hazır olunca normal play/pause → Kullanıcı "işlem devam ediyor" diye bilecek.
Çok hızlı geçişlerde (50ms gibi) loading gösterilmezse kullanıcı "tıkladım mı?" diye şüphe duyar. Minimum loading süreleri belirlensin.
Spotify, YouTube Music gibi platformlar bile instant geçişlerde artificial delay kullanır. Sebep: Kullanıcı feedback almadan geçiş olursa "bug var mı?" diye düşünür. 150ms insan algısı için "yeterince hızlı ama fark edilir" süredir.
API çağrısı başarısız olursa veya timeout olursa loading sonlandırılsın, kullanıcı bilgilendirilsin.
Kullanıcı sonsuz loading görmeyecek, sorun olduğunda bilgilendirilecek, ne yapması gerektiğini bilecek.
Space (play/pause), Arrow keys (şarkı değiştir) → Loading feedback'i bu durumlarda da gösterilsin.
Power user'lar (klavye kısayolu kullananlar) da aynı loading feedback'i görecek, tüm senaryolar kapsanacak.
Tekrar tıklama oranı
Kullanıcı memnuniyeti
Profesyonel algı
navigateTo() → Hemen isLoading set etloadPage() → Minimum 150ms delay ekleisSongLoadingplaySongFromQueue() → Loading başlatplayHlsStream() → Stream hazır olunca loading bitirx-show ile conditional iconfas fa-spinner fa-spinfas fa-play / fas fa-pauseisLoading flag kontrolü yeterli