⊗jsSpOtEH 280 of 294 menu

Tapahtumankäsittelijöiden optimointi JavaScriptissä

Liian monet käsittelijät, joita on kiinnitetty elementteihin, kuluttavat paljon muistia ja aiheuttavat sivun jumittumista.

Katsotaanpa esimerkkiä. Oletetaan, että meillä on jokin lista:

<ul></ul>

Haetaan viite tähän listaan muuttujaan:

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

Täytetään nyt listamme li-tageilla, ja kiinnitetään niihin klikkauskäsittelijä:

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

Lopputuloksena on, että meillä on 1000 käsittelijää. Tämä on erittäin paljon. Optimoidaksemme voimme kiinnittää vain yhden käsittelijän ul-tagiin hyödyntämällä delegointia.

Tehdään tämä. Aluksi luodaan vain listan kohdat:

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

Ja nyt toteutetaan tapahtumien delegointi:

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

Luo HTML-taulukko, koko 100 100. Tee niin, että jokainen solu värjäytyy punaiseksi klikattaessa.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää