⊗jsSpOtDm 277 of 294 menu

DOM-műveletek optimalizálása JavaScriptben

A DOM-műveletek lassúak. Ezért minimalizálni kell az elemek lekérését, az adatok olvasását és írását, különösen ciklusban.

Nézzünk egy példát. Tegyük fel, van egy bemeneti mezőnk, ahová egy számot írhatunk:

<input>

Amikor elveszti a fókuszt, ellenőrizzük, hogy a megadott szám az adott tartományban van-e:

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

A probléma az, hogy kétszer olvassuk ki a szöveget a bemeneti mezőből, holott a benne lévő szám nem változik. Ez természetesen nem optimális. Optimalizáljuk:

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

Az alábbi kód ellenőrzi a beírt értéket. Végezze el az optimalizálást:

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

Az alábbi kód megkeresi az egész számok összegét egytől a bemeneti mezőbe írt számig. Végezze el az optimalizálást:

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

Az alábbi kód megkeresi a bemeneti mezőbe írt szám osztóinak összegét. Végezze el az optimalizálást:

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

Az alábbi kód négyzetre emeli a bekezdésekben szereplő számokat. Végezze el az optimalizálást:

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

Az alábbi kód ellenőrzi, hogy a bemeneti mezőbe egy adott tartományban lévő hosszúságú sztring van-e. Végezze el az optimalizálást:

<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('---'); } });
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás