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