İyimser Arayüz — Ne Zaman Hemen 'Tamam' Denir, Ne Zaman Beklenir?
Önce şunu oku: State Nerede Yaşamalı? — Bileşen, Üst Bileşen, Context, Cache, URL
30 saniyede özet
Arayüz bir işlemi sunucu cevap vermeden 'tamam' gösterirse uygulama hızlı hissettirir. Favori eklemek gibi geri alınabilen işlerde bu iyidir; havale gibi geri alınamayan işlerde müşteriye yalan söylemek olur.
Bir kafede su istediğinde garson hemen geleceğini söyler; sürahi boşsa bir özür yeter. Ama kartla ödediğinde kimse cihaz onaylamadan “ödendi” demez. Biri geri alınabilir, öbürü para.
-
Bayt: Uygulamayı hızlandırdım: her düğme sunucuyu beklemeden 'tamam' gösteriyor!
-
Sen: Bir müşteri 'havale gönderildi' yazısını görmüş, sonra yazı kaybolmuş. Para gitmemiş.
-
Bayt: Yetersiz bakiye... Sunucu reddetmiş, ama ekran çoktan 'gönderildi' demişti.
-
Bayt: Favori eklemek için harikaydı. Para için ise bir yalan.
Neden hemen göstermek istenir?
Sunucuya giden her işlem bir süre alır. Bu sırada dönen bir simge görmek, uygulamanın yavaş olduğu hissini verir.
iyimser arayüzBir işlemi sunucu cevap vermeden gösterip, reddedilirse sakince geri alan arayüz. Geri alınabilen küçük işler içindir, para için değil.Sözlükte gör →, sunucunun büyük ihtimalle onaylayacağı bir işlemi cevabı beklemeden gösterir. Sunucu reddederse ekranı eski hâline getirir ve bunu sakin bir notla söyler.
Kafam karıştı, daha basit anlat
İyimser arayüz, sonucu sunucu cevap vermeden gösterir. Sunucu reddederse geri alır.
İyimser arayüz (optimistic UI) nedir?
Neden her işlemde sunucuyu beklemek yavaş hissettirir?
Geri alınabilene evet, paraya bekle
Her işlem iyimser gösteriliyor. Müşteri 5.000 TL havale gönderdi; ekran hemen 'gönderildi' dedi. Sunucu yetersiz bakiye nedeniyle reddetti. Müşteri ne anlar? Cevabı göster
Büyük ihtimalle parayı gönderdiğini sanır. Ekran sonradan geri alsa bile, o “gönderildi” yazısı görülmüştür. Geri alınamayan bir işlemde iyimser göstermek, müşteriye yanlış bir bilgi vermektir.
Adım adım oku
- Su alabilir miyim? Hemen geliyor!
- Sürahi boşmuş: kusura bakmayın yeter.
- Kartla ödeme: önce cihaz onaylasın.
- Geri alınabilene hemen evet, paraya onaydan sonra.
İyimser göstermek için soru basit: sunucu reddederse, müşteri yanıldığını fark edip kolayca düzeltebilir mi? Favori ya da bir not için evet; para, yetki ya da bir başkasına giden mesaj için hayır.
Beklenen işlemlerde de hız hissi verilebilir. Düğmeyi kilitle, “gönderiliyor” yaz, ikinci tıklamayı engelle ve işleme bir idempotencyAynı işlemin bir kez de on kez de çalışsa aynı sonucu vermesi. Dağıtık sistemde timeout aldığında işlemin yapılıp yapılmadığını bilemediğin için zorunludur.Sözlükte gör → anahtarı ekle ki tekrar gönderim iki kez para çekmesin.
Kafam karıştı, daha basit anlat
Geri alınabilen işi hemen göster. Parayı sunucu onaylayınca göster; beklerken ne olduğunu açıkça yaz.
Hangi işlem iyimser gösterilmeye uygundur?
Havale beklerken hız hissi nasıl verilir?
Kendin gör
Üç işlem, üç sunucu cevabı
Tohum 77397- Ayşe’yi favori alıcılara eklesunucu: onaylar
- Harcama notunu düzenlesunucu: reddeder
- 💸 5.000 TL havale göndersunucu: reddeder
⏳ toplam bekleme: 0 ms · ↩ geri alınan: 0 · ✕ yanlış başarı: 0
Şu an ne oldu?
Her işlemde sunucuyu bekle
Sunucu her işleme yaklaşık 800 ms sonra cevap veriyor. İkinci ve üçüncü işlem reddedilecek.
Görevler0/3
Hiçbir işlem anında görünmesinaçık
İpucu
Her işlemde sunucuyu bekle.
Müşteri gitmeyen bir havaleyi “gönderildi” görsünaçık
İpucu
Her şeyi hemen “tamam” göster.
Yanlış başarı olmasın, toplam bekleme 800 ms’yi geçmesinaçık
İpucu
Riskine göre ayır.
Olay günlüğü (0)
Henüz olay yok. Oynat veya adımla.
- Varsayılanla oynat. Hiçbir yanlış gösterilmedi, ama her işlemde beklendi; favori için bile.
- “Her işlemi hemen tamam göster” seç. Not sakince geri alındı. Havale ise “gönderildi” gösterildi ve para hiç gitmedi.
- “Geri alınabileni hemen göster, parayı bekle” seç. Favori ve not anında; havale beklendi ve hata doğru gösterildi.
Her işlem iyimser gösterilirken sunucu bir havaleyi yetersiz bakiye nedeniyle reddetti. Sorun nedir?
React 19'da useOptimistic ile gösterilen değer sunucu reddederse ne olur?
Tuzaklar
Sessizce geri almak. Favori yıldızı aniden sönerse müşteri kafası karışır. “Kaydedilemedi, eski hâline döndü” gibi kısa bir not yeter.
Ekranı sunucudan ayırmak. İyimser değer yalnızca bekleme süresince gösterilir. Sunucunun cevabı gelince doğru olan her zaman sunucudaki değerdir.
Bekleyen düğmeyi açık bırakmak. Havale beklerken düğme tıklanabilir kalırsa sabırsız bir ikinci tıklama ikinci bir havale olabilir. Düğmeyi kilitle, isteğe bir anahtar ver.
Kafam karıştı, daha basit anlat
Geri alırken söyle, sonunda sunucuya güven, bekleyen düğmeyi kilitle.
İyimser bir değişiklik geri alınırken ne yapılmalı?
Derinleş · Mobil bankacılık: favori iyimser, havale beklenir 4 dosya · ~92 satır · ilk okumada atlayabilirsin
Kendini sına
İyimser arayüz, işlemi sunucu cevap vermeden gösterir.
Bekleyen havale düğmesi tıklanabilir kalırsa ne olabilir?
Aklında kalacak üç şey
- 1 İyimser arayüz, sunucunun büyük ihtimalle onaylayacağı bir işlemi cevabı beklemeden gösterir; sunucu reddederse sakin bir notla geri alır.
- 2 Bu yalnızca geri alınabilen ve küçük işler içindir: favori eklemek, bir notu düzenlemek. Para hareketi gibi geri alınamayan işlerde arayüz sunucunun cevabını bekler.
- 3 Beklerken de iyi davranılabilir: düğmeyi kilitle, ne olduğunu yaz, ikinci tıklamayı engelle. Hız hissi yalan söylemeden de verilebilir.
4 kart sonraki derste seni bekliyor