# Throttling

Adres: https://softwaredictionary.org/tr/terimler/throttling
Kategori: Web Geliştirme
Son güncelleme: 2026-10-05
Türkçe karşılığı: kısma
Okunuşu: trotling

Kısaca: Throttling, bir fonksiyonu ne kadar sık çağrılırsa çağrılsın aralık başına en fazla bir kez çalıştırır; böylece kaydırma işleyicileri düzenli güncellenir.

## Throttling (kısma) nedir?

Kaydırmak, pencereyi yeniden boyutlandırmak, fareyi hareket ettirmek ya da sürüklemek bir olayı saniyede onlarca kez tetikleyebilir. Her biri yerleşimi ölçmek ya da istek göndermek gibi pahalı bir kod çalıştırırsa sayfa takılır. Throttle edilmiş bir fonksiyon ilk çağrıldığında çalışır, ardından örneğin 100 milisaniyelik aralık dolana kadar gelen çağrıları yok sayar ve çağrılar sürdükçe aralık başına en fazla bir kez çalışmaya devam eder.

Throttling sık sık debouncing ile karıştırılır. Debouncing olaylar durana kadar bekler ve ardından bir kez çalışır; bu, yazarken arama için uygundur. Throttling ise olaylar sürerken düzenli bir hızda çalışmaya devam eder; bu da sonsuz kaydırma kontrolü, kaydırınca küçülen bir başlık ya da sürüklerken gösterilen konum gibi eylem sırasında güncellenmesi gereken her şeye uyar. Pek çok throttle yardımcısı, son durum kaçmasın diye en sonda bir kez daha çalışır.

Görsel güncellemeler için tarayıcılar yerleşik bir alternatif sunar: `requestAnimationFrame` bir callback'i bir sonraki boyamadan önce, genellikle saniyede 60 kez, çalıştırır; böylece güncellemeler ekranla uyumlu ilerler. Throttling sözcüğü başka yerlerde de kullanılır: sunucular istemcileri rate limit'lerle kısar, tarayıcılar arka plandaki sekmelerin zamanlayıcılarını yavaşlatır, işlemciler de fazla ısındıklarında kendilerini yavaşlatır.

## Önemli noktalar

- Throttling, bir fonksiyonu ne sıklıkla çağrılırsa çağrılsın aralık başına en fazla bir kez çalıştırır.
- Kaydırma, yeniden boyutlandırma ve sürükleme gibi sürekli eylemlere uyar.
- Debouncing olayların durmasını bekler; throttling ise olaylar sürerken düzenli bir hız tutturur.
- Görsel güncellemeler için `requestAnimationFrame` işi ekranın yenilenmesine göre ayarlar.

## Örnek: JavaScript'te basit bir throttle

```javascript
function throttle(fn, interval) {
  let last = 0;
  return (...args) => {
    const now = Date.now();
    if (now - last >= interval) { // skip calls that come too soon
      last = now;
      fn(...args);
    }
  };
}

// Check at most every 100 ms whether to load more, however fast the user scrolls
window.addEventListener("scroll", throttle(() => {
  if (window.scrollY + innerHeight > document.body.scrollHeight - 500) loadMore();
}, 100));
```

## Sık sorulan sorular

**Throttling ile debouncing arasındaki fark nedir?**

Throttling, fonksiyonu bir olay patlaması boyunca düzenli olarak, aralık başına en fazla bir kez çalıştırır. Debouncing ise onu patlama durduktan sonra bir kez çalıştırır. Kullanıcı eylem sırasında güncellemeleri görmeliyse throttle, yalnızca son değer önemliyse debounce kullanın.

**Throttling, rate limiting ile aynı şey mi?**

İkisi de bir şeyin ne sıklıkla olacağına üst sınır koyma fikrini paylaşır. Rate limiting genellikle bir sunucunun, bir istemcinin sınırı aşan isteklerini reddetmesi ya da geciktirmesi demektir; bir fonksiyonu throttle etmek ise kodun tarayıcıda ya da başka bir yerde kendine uyguladığı bir şeydir.

## Kaynaklar

- [MDN: Throttle](https://developer.mozilla.org/en-US/docs/Glossary/Throttle)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
