ページの一部または全体を再レンダリングするためにブラウザがページ要素の位置と形状を再計算するプロセスをリフローと呼びます。リフローはブラウザーでのユーザー ブロック操作であるため、リフローの数を減らす方法と、さまざまなドキュメント属性 (DOM の深さ、CSS 効率、型なしのスタイルの変更) がリフローの数にどのような影響を与えるかを理解することが重要です。開発者にとって非常に必要です。リフロー ページ内の要素が、その親要素 (注釈: ここでは複数形) とすべての子要素をリフローする場合があります。
リフローを引き起こす可能性のあるさまざまなユーザー操作や DHTML の変更があります。ブラウザ ウィンドウのサイズの調整、JavaScript を使用したスタイルの計算 ( 計算されたスタイル)、DOM 内の要素の作成と削除、要素のクラスの変更を行うと、リフローがトリガーされます。一部の操作では、想像を超えてリフローが複数回トリガーされることに注意してください。次の写真は、Steve Souders の講演「さらに高速な Web サイト」からのものです。
上の表から、すべての JavaScript 制御スタイルがすべてのブラウザでリフローをトリガーするわけではなく、たとえトリガーされたとしても回数が同じではないことは明らかです。同時に、最新のブラウザーはリフロー数の制御においてますます優れていることがわかります。
Google では、ページや Web アプリケーションの速度をさまざまな方法で測定しており、リフローは UI を追加する際に考慮する重要な要素です。私たちは、活気に満ちたインタラクティブで楽しいユーザー エクスペリエンスを提供するよう努めています。
原則として
リフローを減らすためのいくつかの原則を次に示します。
以下のビデオ (注釈: YouTube から引用。閲覧できません。壁を回避するには原文にアクセスしてください) で、Lindsey はリフローを減らすためのいくつかの方法を紹介しています。
さらに読む
元の翻訳: http://www.99css.com/2009/06/minimizing-browser-reflow.html