⊗jsSpOtEH 280 of 294 menu

Optimering af event handlers i JavaScript

Et overdrevent antal event handlers, sat på elementer, forbruger en masse hukommelse og fører til at siden hænger.

Lad os se på et eksempel. Antag at vi har en liste:

<ul></ul>

Lad os få en reference til denne liste i en variabel:

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

Lad os nu fylde vores liste med li tags, og tilføje en click event handler til dem:

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); }); }

Resultatet er, at vi har 1000 event handlers. Det er meget. For at optimere kan vi tilføje kun een event handler på ul tagget, ved at bruge delegation.

Lad os gøre det. Til at starte med skal vi bare oprette listepunkterne:

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

Og nu udfører vi delegation af event handler:

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

Opret en HTML tabel med størrelsen 100 gange 100. Gør så hver celle farves rød ved klik.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis