⊗jsSpOtDm 277 of 294 menu

Optymalizacja pracy z DOM w JavaScript

Praca z DOM to wolna operacja. Dlatego należy minimalizować pobieranie elementów, odczytywanie i zapisywanie danych, szczególnie w pętli.

Spójrzmy na przykład. Załóżmy, że mamy pole input, do którego wprowadzana jest liczba:

<input>

Sprawdźmy po utracie fokusu, czy wprowadzona liczba znajduje się w zadanym zakresie:

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

Problem polega na tym, że dwukrotnie odczytujemy tekst z inputa, chociaż liczba w nim się nie zmienia. To oczywiście nie jest optymalne. Zoptymalizujmy:

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

Następujący kod sprawdza wprowadzoną wartość. Wykonaj optymalizację:

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

Następujący kod znajduje sumę liczb całkowitych od jeden do liczby wprowadzonej w pole input. Wykonaj optymalizację:

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

Następujący kod znajduje sumę dzielników liczby wprowadzonej w pole input. Wykonaj optymalizację:

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

Następujący kod podnosi liczby z akapitów do kwadratu. Wykonaj optymalizację:

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

Następujący kod sprawdza, czy w pole input wprowadzony został ciąg znaków o długości w zadanym zakresie. Wykonaj optymalizację:

<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('---'); } });
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć