Обе статьи верны.
Можно смело предположить, что всякий раз, когда вы делаете что-то, что может разумно потребовать вычисления размеров элементов в DOM, вы инициируете рефлоу.
Кроме того, насколько я могу судить, обе статьи говорят об одном и том же.
В первой статье говорится, что оплавление происходит, когда:
Когда вы извлекаете измерение, которое должно быть рассчитано , например, обращаетесь к offsetWidth , clientHeight или к любому вычисленному значению CSS (через getComputedStyle ( ) в DOM-совместимых браузерах или currentStyle в IE), в то время как изменения DOM ставятся в очередь для внесения.
Вторая статья гласит:
Как указывалось ранее, браузер может кэшировать несколько изменений для вас и перекомпоновывать только один раз, когда все эти изменения были сделаны. Тем не менее, обратите внимание, что при проведении измерений элемента заставит его переформатировать , так что измерения будут правильными. Изменения могут или не могут быть визуально перекрашены, но само перекомпоновка все еще должна происходить за кулисами.
Этот эффект создается, когда измерения выполняются с использованием таких свойств, как offsetWidth или с использованием таких методов, как getComputedStyle . Даже если числа не используются, простого запуска любого из них, пока браузер все еще кэширует изменения, будет достаточно для запуска скрытого перекомпоновки. Если эти измерения проводятся неоднократно, вам следует рассмотреть возможность их однократного сохранения и сохранения результата, который затем можно будет использовать позже.
Я понимаю, что это означает то же самое, что они сказали ранее. Opera будет стараться изо всех сил кешировать значения и избегать переформатирования, но вы не должны полагаться на ее способность делать это.
Для всех намерений и целей просто верьте тому, что они оба говорят, когда говорят, что все три типа взаимодействий могут вызвать оплавление.
Приветствие.