⊗jsSpOtEH 280 of 294 menu

JavaScript'te Olay İşleyicilerin Optimizasyonu

Elementlere asılı aşırı sayıda işleyici, çok fazla RAM tüketir ve sayfanın takılmasına neden olur.

Bir örnek üzerinden inceleyelim. Diyelim ki bir listemiz var:

<ul></ul>

Bu listeye bir referansı değişkene alalım:

let ul = document.querySelector('ul');

Şimdi listemizi li etiketleriyle dolduralım ve üzerlerine bir tıklama işleyicisi ekleyelim:

for (let i = 1; i <= 1000; i++) { let li = document.createElement('li'); li.textContent = i; ul.append(li); li.addEventListener('click', function() { console.log(this.textContent); }); }

Sonuçta, 1000 tane işleyicimiz oluyor. Bu çok fazla. Optimizasyon için delegasyon'u kullanarak sadece bir tane işleyiciyi ul etiketine ekleyebiliriz.

Bunu yapalım. Önce sadece liste öğelerini oluşturalım:

for (let i = 1; i <= 1000; i++) { let li = document.createElement('li'); li.textContent = i; ul.append(li); }

Ve şimdi olay delegasyonunu gerçekleştirelim:

ul.addEventListener('click', function(event) { let li = event.target.closest('li'); if (li) { console.log(li.textContent); } });

100'e 100 boyutunda bir HTML tablosu oluşturun. Her hücrenin tıklandığında kırmızı renge boyanmasını sağlayın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet