CodeBlanks Logo Icon CodeBlanks

once ve passive seçenekleri

JavaScript kursu · Orta seviye · Ders 41/134

Bir dinleyicinin tek sefer çalışmasını ve passive ile performans kazanmayı öğrenirsin.

once seçeneği

Bir dinleyicinin yalnızca bir kez çalışmasını istiyorsan once: true seçeneğini kullanırsın. İlk tetiklenmeden sonra tarayıcı dinleyiciyi kendiliğinden kaldırır; tekrar tetiklenmez.

button.addEventListener('click', handleClick, { once: true });

Bu seçenek özellikle ilk tıklamayla bir işlemi bir kez başlatmak istediğinde kullanışlıdır. Manuel removeEventListener çağrısına gerek kalmaz.

passive seçeneği

passive: true seçeneği, dinleyicinin içinde preventDefault çağrılmayacağını tarayıcıya bildirir. Böylece tarayıcı, dinleyiciyi beklemeden kaydırmaya hemen başlar. Bu özellikle scroll ve touchmove gibi olaylarda performansı artırır.

box.addEventListener('scroll', handleScroll, { passive: true });

Eğer passive: true dinleyicisinde yine de preventDefault çağırırsan tarayıcı bir uyarı verir ve çağrı dikkate alınmaz.

Uygulama button için once: true dinleyicisi ekle

button değişkenini tanımla ve #button öğesini seç. click dinleyicisi ekle ve üçüncü parametre olarak { once: true } seçeneğini ver.

Örnek çözümü göster
const button = document.querySelector('#button');
button.addEventListener('click', () => {
  console.log('clicked');
}, { once: true });

Kendini test et

  1. once: true seçeneği ne yapar?

    button.addEventListener('click', () => {
      console.log('clicked');
    }, { once: true });
    • Dinleyiciyi pasifleştirir
    • Dinleyici yalnızca bir kez çalışır
    • Dinleyici iki kez çalışır
    • Dinleyiciyi hemen kaldırır
    Cevabı göster

    Dinleyici yalnızca bir kez çalışır — Doğru! once: true dinleyiciyi tek seferliğe sınırlar.

  2. Tek seferlik seçeneği ekle

    button.addEventListener('click', handleClick, {____: true });
    Cevabı göster
    button.addEventListener('click', handleClick, {once: true });
  3. Seçenekleri etkileriyle eşleştir

    once: true
    Tek sefer çalışır
    passive: true
    preventDefault çalışmaz
    { }
    Dinleyici seçenekleri

Orta seviye bölümündeki tüm dersler