⊗jsSpOtEH 280 of 294 menu

Optimalizace obslužných rutin událostí v JavaScriptu

Příliš mnoho obslužných rutin, připojených k prvkům, spotřebovává hodně operační paměti a vede k zasekávání stránky.

Podívejme se na příklad. Předpokládejme, že máme nějaký seznam:

<ul></ul>

Získáme odkaz na tento seznam do proměnné:

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

Nyní naplníme náš seznam tagy li, a připojíme k nim obslužnou rutinu kliknutí:

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

Výsledkem je, že máme 1000 obslužných rutin. To je velmi mnoho. Pro optimalizaci můžeme připojit pouze jednu obslužnou rutinu k tagu ul, pomocí delegování událostí.

Pojďme to udělat. Nejprve jednoduše vytvořme položky seznamu:

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

A nyní provedeme delegování obslužné rutiny událostí:

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

Vytvořte HTML tabulku o velikosti 100 na 100. Zařiďte, aby se každá buňka po kliknutí obarvila na červenou.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout