⊗jsSpOtDm 277 of 294 menu

Оптимизација на работата со DOM во JavaScript

Работата со DOM е бавна операција. Затоа треба да се сведе на минимум добивањето на елементи, читањето и запишувањето на податоци, особено во циклус.

Да погледнеме на пример. Нека имаме input поле, во кое се внесува број:

<input>

При губење на фокусот, да провериме дали внесениот број е во зададениот опсег:

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

Проблемот е што два пати го читаме текстот од input полето, иако бројот во него не се менува. Ова, се разбира, не е оптимално. Да ја оптимизираме:

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

Следниов код ја проверува внесената вредност. Извршете оптимизација:

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

Следниов код ја наоѓа сумата на целите броеви од еден до внесениот во input полето број. Извршете оптимизација:

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

Следниов код ја наоѓа сумата на делителите на внесениот во input полето број. Извршете оптимизација:

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

Следниов код ги квадратира броевите од параграфите. Извршете оптимизација:

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

Следниов код проверува дали во input полето е внесена низа со должина во зададениот опсег. Извршете оптимизација:

<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('---'); } });
Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј