Przepływ ma miejsce, gdy następuje zmiana w układzie DOM. Przepływ jest bardzo kosztowny pod względem obliczeniowym, ponieważ wymiary i pozycje elementów strony muszą zostać ponownie obliczone, a następnie ekran zostanie przemalowany .
Przykład czegoś, co spowoduje ponowne przepłynięcie
for (let i = 1; i <= 100; i++ {
const newEle = document.createElement('p');
newEle.textContent = 'newly created paragraph element';
document.body.appendChild(newEle);
}
Powyższy kod jest bardzo nieefektywny, powodując 100 procesów ponownego przepływu dla każdego dodanego nowego elementu akapitu.
Ten obciążający obliczeniowo proces można złagodzić, używając .createDocumentFragment()
const docFrag = document.createDocumentFragment();
for (let i = 1; i <= 100; i++ {
const newEle = document.createElement('p');
newEle.textContent = 'newly created paragraph element';
docFrag.appendChild(newEle);
}
document.body.appendChild(docFrag);
Powyższy kod będzie teraz używał tylko 1x procesu ponownego przepływu do utworzenia 100 nowych elementów akapitu.
Odświeżanie to po prostu zmiana pikseli na monitorze, podczas gdy nadal jest to mniejsze zło, ponieważ proces ponownego malowania obejmuje ponowne malowanie.