⊗jsSpOtDm 277 of 294 menu

Optimizacija dela z DOM v JavaScriptu

Delo z DOM je počasna operacija. Zato je treba pridobivanje elementov, branje in pisanje podatkov zmanjšati na minimum, še posebej v zanki.

Poglejmo si primer. Recimo, da imamo vnosno polje, v katerega vnesemo številko:

<input>

Ob izgubi fokusa preverimo, ali je vnesena številka v danem območju:

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

Težava je v tem, da dvakrat preberemo besedilo iz vnosnega polja, čeprav se številka v njem ne spreminja. To seveda ni optimalno. Optimizirajmo:

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

Naslednja koda preveri vneseno vrednost. Izvedite optimizacijo:

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

Naslednja koda poišče vsoto celih števil od ena do številke, vnesene v vnosno polje. Izvedite optimizacijo:

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

Naslednja koda poišče vsoto deliteljev številke, vnesene v vnosno polje. Izvedite optimizacijo:

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

Naslednja koda dvigne številke iz odstavkov na kvadrat. Izvedite optimizacijo:

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

Naslednja koda preveri, ali je v vnosno polje vnesen niz dolžine v danem območju. Izvedite optimizacijo:

<input data-min="5" data-max="10"> let inp = document.querySelector('input'); inp.addEventListener('blur', function() { let min = +inp.dataset.min; let max = +inp.dataset.max; let length = inp.value.length; if (length < min || length > max) { 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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni