reflowто есть перестановка или перекомпоновка
Запускается DOM или изменениями макета.
если вы изменитеdivposition или измените ширину, высоту, положение div или стиль класса макета.
использоватьdisplay:noneФункции, которые не отображаются
пройти черезПолный веб-запрос и процесс рендеринга, а также способы оптимизации веб-страниц, мы можем знать, что при отображении страницы она будет проигнорирована.display: noneЭлементы этого типа, которые не занимают макет.
Итак, мы можем поставить элемент первымdisplay:none, а затем обработайте этот элемент с помощью JS. Дождитесь завершения операции в собрании, затем поставьте ееdisplay:block, это сработает только 2 разаreflow.
Использовать innerHTML
Конечно, также можно использовать вышеуказанное обозначениеinnerHTMLмодифицировать.
const ul = document.getElementById('content')
const lists = ['a', 'b', 'c', 'd']
const childElementString = lists.map(list=>`<li>${list}</li>`).join('')
ul.innerHTML = ul.innerHTML + childElementString
Здесь есть только одна перепрошивка.
использоватьDocumentFragment
Приведенное выше письмо явно недостаточно хорошо для повторного использования. мы можем использоватьDocumentFragmentоптимизировать.DocumentFragmentsявляется узлом DOM, но не частью дерева DOM. он существует в内存, можно понимать как виртуальный DOM.
const parentNode = document.getElementById('content')
const lists = ['a', 'b', 'c', 'd']
const fragment = document.createDocumentFragment
lists.forEach(text=>{
const li = document.createElement('li')
li.textContent = text
fragment.appendChild(li)
})
parentNode.appendChild(fragment)
Если вы не используете DocumentFragment, это вызовет 4 перекомпоновки, и по мере увеличения количества DOM, которые необходимо изменить, будет вызвано больше перекомпоновок, но через фрагменты достаточно только одной.
Оптимизация на уровне CSS
Как мы уже говорили выше, не только изменения дерева DOM вызовут перекомпоновку, но и изменения CSSOM. Здесь мы можем заменить свойства, вызывающие перекомпоновку, альтернативными свойствами CSS.
Статьи по Теме:
Полный веб-запрос и процесс рендеринга, а также способы оптимизации веб-страниц
Базовые знания о внешнем интерфейсе Что такое Node?
Оптимизация страницы внешнего интерфейса, способы уменьшения рефлоу