ページのレンダリング速度の向上: リフローと再描画を最適化するための主要な方法。具体的なコード例が必要です。
Web アプリケーションの開発では、ユーザーはページの読み込み速度に関する要件を抱えています。どんどん高くなってきています。ページのレンダリング速度はリフローと再描画の影響を受けるため、ページのレンダリング速度を向上させるには、これら 2 つのプロセスを最適化する必要があります。この記事では、いくつかの主要なメソッドを紹介し、具体的なコード例を示します。
上/左ではなく変換を使用してください
要素の位置を変更する場合、上または左を使用して要素の位置を変更すると、リフローと再描画がトリガーされます。変換属性を使用すると、リフローを回避でき、再描画のみがトリガーされます。具体的なコードは次のとおりです。
.element { transform: translate(100px, 100px); }
display の代わりに Visibility を使用します
要素を非表示にする必要がある場合、display: none を使用して要素を非表示にすると、リフローと再描画が行われます。トリガーされます。可視性: 非表示を使用すると、リフローを回避でき、再描画のみがトリガーされます。具体的なコードは次のとおりです。
.element { visibility: hidden; }
DOM の一括変更
複数の DOM 属性を連続的に変更する必要がある場合、各属性を個別に設定すると、複数回のリフローと再描画が発生します。引き金になった。要素の className を変更し、CSS を使用して複数の属性を一度に変更することで、リフローと再描画の回数を減らすことができます。具体的なコードは次のとおりです。
document.getElementById("element").className = "newClassName";
Using DocumentFragment
多数の DOM ノードを挿入する必要がある場合、それらをページに直接挿入すると、複数のリフローと再描画が必要になります。トリガーされます。 DocumentFragment を使用すると、最初に仮想親ノードを作成し、すべての DOM ノードをそのノードに挿入してから、それらを一度にページに挿入できます。これにより、リフローと再描画の回数を減らすことができます。具体的なコードは次のとおりです。
var fragment = document.createDocumentFragment(); for (var i = 0; i < 1000; i++) { var div = document.createElement("div"); fragment.appendChild(div); } document.body.appendChild(fragment);
Use requestAnimationFrame
一部のアニメーション効果が必要な場合、setTimeout または setInterval を使用して要素のスタイルを更新すると、複数のリフローと再描画が行われます。トリガーされます。 requestAnimationFrame を使用すると、ブラウザは次の再描画の前に更新操作を実行できるため、不必要なリフローや再描画を減らすことができます。具体的なコードは次のとおりです:
function update() { // 更新元素的样式 } requestAnimationFrame(update);
上記は、リフローと再描画を最適化するための重要なメソッドの一部です。これが皆さんのページのレンダリング速度の向上に役立つことを願っています。もちろん、具体的な最適化方法は多数あり、特定のページやニーズに応じて適切な方法を選択する必要があります。この記事で提供されているコード例がお役に立てば幸いです。
以上がページのレンダリング速度の向上: リフローと再描画を最適化する主な方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。