⊗jsSpOtDm 277 of 294 menu

Optimalizácia práce s DOM v JavaScripte

Práca s DOM je pomalá operácia. Preto je potrebné minimalizovať získavanie prvkov, čítanie a zápis údajov, najmä v cykle.

Pozrime sa na príklad. Predpokladajme, že máme vstupné pole, do ktorého sa zadáva číslo:

<input>

Po strate fókusu skontrolujme, či zadané číslo je v stanovenom rozsahu:

let input = document.querySelector('input'); input.addEventListener('blur', function() { if (+input.value > 0 && +input.value <= 10) { console.log('+++'); } else { console.log('---'); } });

Problém je v tom, že dvakrát čítame text zo vstupného poľa, hoci číslo v ňom sa nemení. Toto samozrejme nie je optimálne. Optimalizujme:

let input = document.querySelector('input'); input.addEventListener('blur', function() { let num = +input.value; if (num > 0 && num <= 10) { console.log('+++'); } else { console.log('---'); } });

Nasledujúci kód kontroluje zadanú hodnotu. Vykonajte optimalizáciu:

<input> let input = document.querySelector('input'); input.addEventListener('blur', function() { if (input.value === '1' || input.value === '2') { console.log('+++'); } else { console.log('---'); } });

Nasledujúci kód hľadá súčet celých čísel od jednotky po číslo zadané do vstupného poľa. Vykonajte optimalizáciu:

<input> let input = document.querySelector('input'); input.addEventListener('blur', function() { let sum = 0; for (let i = 1; i <= +input.value; i++) { sum += i; } console.log(sum); });

Nasledujúci kód hľadá súčet deliteľov čísla zadaného do vstupného poľa. Vykonajte optimalizáciu:

<input> <div></div> let input = document.querySelector('input'); input.addEventListener('blur', function() { let sum = 0; for (let i = 1; i <= +input.value; i++) { if (input.value % i === 0) { sum += i; let div = document.querySelector('div'); div.textContent = sum; } } });

Nasledujúci kód umocňuje čísla z odsekov na druhú. Vykonajte optimalizáciu:

<p>1</p> <p>2</p> <p>3</p> <p>4</p> let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.textContent = elem.textContent * elem.textContent; }

Nasledujúci kód kontroluje, či do vstupného poľa bola zadaná reťazec dĺžky v stanovenom rozsahu. Vykonajte optimalizáciu:

<input data-min="5" data-max="10"> let inp = document.querySelector('input'); inp.addEventListener('blur', function() { if (inp.dataset.min > inp.value.length || inp.dataset.max < inp.value.length) { console.log('+++'); } else { console.log('---'); } });
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť