Hi everyone! I'm the author of code.mu :)
I'd love to chat with my non-Russian audience. I'm looking for your feedback on the site and the translation quality. Let's chat:)
⊗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