⊗jsSpOtDm 277 of 294 menu

DOM darbo optimizavimas JavaScript

Darbas su DOM yra lėta operacija. Todėl reikia sumažinti elementų gavimą, duomenų skaitymą ir įrašymą, ypač cikle.

Pažiūrėkime pavyzdžiu. Tarkime, turime įvesties lauką, į kurį įvedamas skaičius:

<input>

Praradus fokusą, patikrinkime, ar įvestas skaičius yra nurodytame diapazone:

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

Problema ta, kad mes du kartus nuskaitome tekstą iš įvesties lauko, nors skaičius jame nesikeičia. Tai, žinoma, nėra optimalu. Optimizuokime:

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

Tolimesnis kodas tikrina įvestą reikšmę. Atlikite optimizavimą:

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

Tolimesnis kodas ieško sveikųjų skaičių sumos nuo vieno iki įvesto į įvesties lauką skaičiaus. Atlikite optimizavimą:

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

Tolimesnis kodas ieško įvesto į įvesties lauką skaičiaus dalininkų sumos. Atlikite optimizavimą:

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

Tolimesnis kodas pakelia skaičius iš pastraipų į kvadratą. Atlikite optimizavimą:

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

Tolimesnis kodas tikrina, ar į įvesties lauką įvesta eilutė yra nurodytame ilgio diapazone. Atlikite optimizavimą:

<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('---'); } });
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti