⊗jsSpOtEH 280 of 294 menu

Optymalizacja obsługi zdarzeń w JavaScript

Nadmierna liczba procedur obsługi zdarzeń, przypisanych do elementów, zużywa dużo pamięci operacyjnej i prowadzi do zawieszania się strony.

Spójrzmy na przykład. Załóżmy, że mamy pewną listę:

<ul></ul>

Pobierzmy referencję do tej listy do zmiennej:

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

Wypełnijmy teraz naszą listę znacznikami li, przypisując do nich procedurę obsługi kliknięcia:

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

W efekcie otrzymujemy, że mamy 1000 procedur obsługi. To bardzo dużo. Dla optymalizacji możemy przypisać tylko jedną procedurę obsługi do znacznika ul, wykorzystując delegowanie zdarzeń.

Zróbmy to. Na początek po prostu stwórzmy elementy listy:

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

A teraz wykonajmy delegowanie obsługi zdarzeń:

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

Stwórz tabelę HTML o rozmiarze 100 na 100. Spowoduj, aby każda komórka po kliknięciu zmieniała kolor na czerwony.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć