Касание DOM вызывает перекомпоновку и перекрашивание, даже если ничего не меняется?

Я работаю над небольшим механизмом шаблонов JavaScript, и у меня есть два возможных подхода к обновлению DOM при изменении модели:

Проверьте, действительно ли нужно обновление DOM, прежде чем делать это. Преимущество этого состоит в том, что вы не рискуете ненужными обновлениями, но я трачу место на отслеживание старых значений.

if (oldValue !== newValue) {
    element.textContent = newValue;
}

Просто сделай это. Это, очевидно, проще, но я боюсь, что я буду вызывать перерисовки и перекомпоновки без какой-либо причины.

element.textContent = newValue;

Обратите внимание, что я также манипулирую DOM, вызываяsetAttribute, addClass а такжеremoveClassплюс настройкиstyle[prop] = value.

Итак, мой вопрос: достаточно ли умны современные браузеры, чтобы заметить, что на самом деле ничего не изменилось, и, следовательно, не запускать перекомпоновку или перерисовку, если вы касаетесь DOM, фактически не меняя ничего?

Ответы на вопрос(1)

Ваш ответ на вопрос