⊗jsSpOtDm 277 of 294 menu

Optimering van DOM-werk in JavaScript

Werk met die DOM is 'n stadige bewerking. Daarom moet dit tot die minimum beperk word om elemente te verkry, data te lees en te skryf, veral in 'n lus.

Kom ons kyk na 'n voorbeeld. Gestel ons het 'n invoerveld waarin 'n nommer ingevoer word:

<input>

Kom ons toets wanneer fokus verloor word, dat die ingevoerde nommer binne die gespesifiseerde reeks val:

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

Die probleem is dat ons twee keer die teks uit die invoerveld lees, hoewel die nommer daarin nie verander nie. Dit is, natuurlik, nie optimaal nie. Kom ons optimaliseer:

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

Die volgende kode toets die ingevoerde waarde. Voer optimalisering uit:

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

Die volgende kode soek die som van heelgetalle van een tot by die nommer wat in die invoerveld ingevoer is. Voer optimalisering uit:

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

Die volgende kode soek die som van delers van die nommer wat in die invoerveld ingevoer is. Voer optimalisering uit:

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

Die volgende kode verhef die nommers uit die paragrawe tot die tweede mag. Voer optimalisering uit:

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

Die volgende kode toets dat 'n string van 'n lengte binne die gespesifiseerde reeks in die invoerveld ingevoer is. Voer optimalisering uit:

<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('---'); } });
Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČ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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp