⊗jsSpOtEH 280 of 294 menu

JavaScript-də Hadisə Emalçılarının Optimallaşdırılması

Elementlərə əlavə edilmiş həddindən artıq çox sayda emalçı, çox sayda operativ yaddaş sərf edir və səhifənin ləngiməsinə səbəb olur.

Gəlin bir nümunəyə baxaq. Tutaq ki, bizim müəyyən bir siyahımız var:

<ul></ul>

Bu siyahıya istinadı dəyişəndə əldə edək:

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

İndi siyahımızı li teqləri ilə dolduraq, onlara klik hadisəsi emalçısı əlavə edərək:

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

Nəticədə bizdə 1000 emalçı olur. Bu, çox böyük rəqəmdir. Optimallaşdırmaq üçün biz yalnız bir emalçını ul teqinə əlavə edə bilərik, delegasiyadan istifadə edərək.

Gəlin bunu edək. Əvvəlcə sadəcə siyahı bəndlərini yaradaq:

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

İndi isə hadisə emalçısının delegasiyasını yerinə yetirək:

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

Ölçüsü 100 100 olan HTML cədvəli yaradın. Hər bir xananın klikdə qırmızı rəngə boyanmasını təmin edin.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et