Касание DOM вызывает перекомпоновку и перекрашивание, даже если ничего не меняется?
Я работаю над небольшим механизмом шаблонов JavaScript, и у меня есть два возможных подхода к обновлению DOM при изменении модели:
Проверьте, действительно ли нужно обновление DOM, прежде чем делать это. Преимущество этого состоит в том, что вы не рискуете ненужными обновлениями, но я трачу место на отслеживание старых значений.
if (oldValue !== newValue) {
element.textContent = newValue;
}
Просто сделай это. Это, очевидно, проще, но я боюсь, что я буду вызывать перерисовки и перекомпоновки без какой-либо причины.
element.textContent = newValue;
Обратите внимание, что я также манипулирую DOM, вызываяsetAttribute
, addClass
а такжеremoveClass
плюс настройкиstyle[prop] = value
.
Итак, мой вопрос: достаточно ли умны современные браузеры, чтобы заметить, что на самом деле ничего не изменилось, и, следовательно, не запускать перекомпоновку или перерисовку, если вы касаетесь DOM, фактически не меняя ничего?