⊗jsSpOtEH 280 of 294 menu

Notikumu apstrādātāju optimizācija JavaScript

Pārāk daudz notikumu apstrādātāju, kas pievienoti elementiem, aizņem daudz operatīvās atmiņas un noved pie lapas aizķeršanās.

Apskatīsim to ar piemēru. Pieņemsim, ka mums ir kāds saraksts:

<ul></ul>

Iegūsim atsauci uz šo sarakstu mainīgajā:

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

Aizpildīsim tagad mūsu sarakstu ar tagiem li, pievienojot tiem klikšķa notikuma apstrādātāju:

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

Rezultātā mums ir 1000 notikumu apstrādātāji. Tas ir ļoti daudz. Optimizēšanai mēs varam pievienot tikai vienu notikumu apstrādātāju tagam ul, izmantojot deleģēšanu.

Izdarīsim to. Vispirms vienkārši izveidosim saraksta punktus:

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

Un tagad izveidosim notikumu deleģēšanu:

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

Izveidojiet HTML tabulu ar izmēru 100 uz 100. Iestatiet to tā, lai katra šūna pēc noklikšķināšanas iekrāsotos sarkanā krāsā.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt