debounce ve throttle
- Dart kursu
- İleri seviye
- Ders 15/83
- 5 dk
debounce ve throttle öğrenirsin.
debounce ve throttle
debounce: akış sessizleşene kadar bekler, sonra son öğeyi iletir. Arama kutularında her tuş vuruşunu sunucuya göndermemek için kullanılır.
throttle: belirli bir süre boyunca yalnızca bir öğe iletir, diğerlerini düşürür. Scroll ve resize olaylarını sıkıştırmak için idealdir.
İkisi de rxdart paketinde debounceTime ve throttleTime olarak bulunur. Saf Dart'ta zamanlayıcı ve asyncExpand ile elle yazılabilir.
Basit throttle: take
.take(n), bir stream'ın ilk n öğesini alıp geri kalanını düşürür. Bu, en basit throttle formudur: süreye değil sayıya göre sınırlama.
Örnek: Stream.fromIterable([1, 2, 3, 4]).take(2) yalnızca 1 ve 2'yi iletir; 3 ve 4 hiç üretilmez (tembel akış).
Gerçek zaman bazlı throttle için rxdart'ın throttleTime'ı ya da zamanlayıcı tabanlı özel transformer kullanılır.
Uygulama take ile ilk iki öğeyi al
main'i async yap. var s = Stream.fromIterable([1, 2, 3, 4]); ekle. await s.take(2).forEach(print); ekle.
Başlangıç kodu
void main() {
// async yap; [1,2,3,4] stream'ı oluştur; take(2) ile ilk ikisini al; forEach ile yazdır
}Örnek çözüm
void main() async {
var s = Stream.fromIterable([1, 2, 3, 4]);
await s.take(2).forEach(print);
}Beklenen çıktı
1 2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Kavramları eşleştir
| Kavram | Anlamı |
|---|---|
debounce |
Sessizlik sonrası son öğe |
throttle |
Süre başına bir öğe |
Arama kutusu |
debounce kullanımı |
Scroll |
throttle kullanımı |
2 Arama kutusu için hangisi uygundur?
- throttle
- take
- debounce Doğru cevap
- skip
Açıklama: debounce kullanıcı yazmayı bırakınca son sorguyu gönderir.
3 İlk iki öğeyi al
var t = s.____(2);
var t = s.take(2);
Açıklama: take(2) ilk iki öğeyi alır.