検索
ホームページウェブフロントエンドhtmlチュートリアルブラウザにおける再描画とリフローの概念分析

この記事の内容はブラウザでの再描画とリフローの概念分析に関するものです。必要な方は参考にしていただければ幸いです。

1. レンダーツリー
1. ブラウザは、取得した HTML コードを DOM ツリーに解析し、ルート ノードは DOM ツリー内のノードです。 DOM ツリーには、display:none の非表示を含むすべての HTML タグと、JS などで動的に追加された要素が含まれています。たとえば、IE では -moz で始まるスタイルが削除され、Firefox では

3 で始まるスタイルが削除されます。レンダー ツリーは DOM ツリーに似ていますが、その違いは非常に大きく、レンダー ツリーの各ノードは独自のスタイルを持ち、レンダー ツリーには非表示のノードが含まれません。これらのノードはレンダリングに使用されず、レンダリングに影響を与えないためです。

2. 再描画とリフローの定義

再描画
: 現在の要素のスタイル (背景色、フォント色など) が変更された場合、変更された要素を再レンダリングするだけで済みます。描画はブラウザのパフォーマンスにほとんど影響しないため、通常は考慮されません。

再描画が発生した場合

: コンテナの外観スタイルを変更します(背景:黒など)。外観を変更してもレイアウトは変更されず、他の DOM には影響しません。

リフロー

: ドキュメントの一部または全体を再レンダリングするために、ブラウザがドキュメント内の要素の位置と幾何学的構造を再計算するプロセスを指します。 リフローにより DOM ツリー全体が再構築される可能性があるため、パフォーマンスが大幅に低下します
1 つの要素のリフローにより、後続のすべての子要素と DOM 内のそのすぐ後の祖先要素のリフローが発生します。

3. リフローをトリガーする操作

1. ウィンドウのサイズ変更
2. スタイルシートの追加または削除

4. 入力ボックスにテキストを入力するなど、コンテンツの変更ユーザーが入力ボックスにテキストを入力するなど)

5. 次のような CSS 疑似クラスをアクティブ化します。 hover (IE の兄弟ノード疑似クラスのアクティブ化) (:hover などの CSS 疑似クラスのアクティブ化 (IE では兄弟の疑似クラスのアクティブ化)

6. クラス属性の操作 (クラス属性の操作)

7. DOM を操作するスクリプト)

8. offsetWidth プロパティと offsetHeight プロパティの計算 (offsetWidth と offsetHeight の計算)

9. style属性のプロパティを設定する (style属性のプロパティを設定する)

10. スクロールバーをドラッグすると固定配置の要素が移動します

リフローを回避する方法

1.要素のスタイルを変更したい場合、複数回変更する代わりに、すべてのスタイルを 1 つのクラスに集中させて一度変更することができます

2. アニメーション効果には絶対を使用してください 3. テーブル レイアウトの使用は避けてください4. CSS 式は使用しないでください
5. 最後に要素を変更します
6. アニメーションを動かすときは、コントロールが必要です
たとえば、要素をドラッグするときに、x または y 座標を 5px 変更しますが、これにより滑らかさが低下します。パフォーマンスが向上します
7. アニメーション効果などの複雑なパフォーマンスを変更したい場合は、offsetWidth の計算も発生するため、このフロー ラインの外側で、position-absolute または Position-fixed を使用してください。変数を使用して保存します
9. ドキュメントにノードを追加する必要がある場合、DOM に新しい要素を追加するときに、ドキュメントの断片化を使用して、最初にそれらをコンテナに追加してから均一に追加します。リフローが 1 つだけ生成されること

関連する推奨事項:


js で自己実行関数を呼び出す 2 つの方法


js のローカル オブジェクト、組み込みオブジェクト、ホスト オブジェクトの分析概要

以上がブラウザにおける再描画とリフローの概念分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Lang属性をタグにどのように設定しますか?なぜこれが重要なのですか?Lang属性をタグにどのように設定しますか?なぜこれが重要なのですか?May 08, 2025 am 12:03 AM

タグのLang属性を設定することは、WebアクセシビリティとSEOを最適化する重要なステップです。 1)ラング属性をタグに設定します。 2)多言語コンテンツでは、ようなさまざまな言語パーツのLang属性を設定します。 3)「EN」、「FR」、「ZH」などのISO639-1標準に準拠する言語コードを使用します。Lang属性を正しく設定すると、Webページと検索エンジンランキングのアクセシビリティが向上します。

HTML属性の目的は何ですか?HTML属性の目的は何ですか?May 07, 2025 am 12:01 AM

htmlattributeSareSientionalentionalentionalentionalentiallyance'functionalityandappearance.theyaddinformationtodefinebehavior、light、and interaction、makewebsitesteractive、responsive、andviseallyappaleal.attributeslikesrc、href、class、型、およびdoadabledransform

HTMLでリストを作成するにはどうすればよいですか?HTMLでリストを作成するにはどうすればよいですか?May 06, 2025 am 12:01 AM

toreatealistinhtml、useforunorderedlistsandfororderedlists:1)forunorderedlists、wrapitemsinanduseforeachitem、renderingasabulletedlist.2)

HTMLアクション:Webサイト構造の例HTMLアクション:Webサイト構造の例May 05, 2025 am 12:03 AM

HTMLは、明確な構造のWebサイトを構築するために使用されます。 1)Webサイト構造などのタグを使用し、定義します。 2)例は、ブログとeコマースのウェブサイトの構造を示しています。 3)誤ったラベルネスティングなどの一般的な間違いを避けてください。 4)HTTP要求を削減し、セマンティックタグを使用してパフォーマンスを最適化します。

HTMLページに画像を挿入するにはどうすればよいですか?HTMLページに画像を挿入するにはどうすればよいですか?May 04, 2025 am 12:02 AM

to inertanimageintoanhtmlpage、usethetagwithsrcandaltattributes.1)usealttextforaccessibilityandseo.2)emplencesrcsetForresponsiveimages.3)applylazyloadingwithloading = "lazy" tooptimizeperformance.4)

HTMLの目的:Webブラウザがコンテンツを表示できるようにするHTMLの目的:Webブラウザがコンテンツを表示できるようにするMay 03, 2025 am 12:03 AM

HTMLの中心的な目的は、ブラウザがWebコンテンツを理解して表示できるようにすることです。 1。HTMLは、タグなどのタグを介してWebページの構造とコンテンツを定義します。 3.HTMLは、ユーザーの相互作用をサポートするフォーム要素を提供します。 4. HTMLコードの最適化は、HTTP要求の削減やHTMLの圧縮など、Webページのパフォーマンスを改善できます。

Web開発にとってHTMLタグが重要なのはなぜですか?Web開発にとってHTMLタグが重要なのはなぜですか?May 02, 2025 am 12:03 AM

htmltagsareSterenceforwebdevelovementasyStheStructureanhandhancewebpages.1)theydefineLayout、semantics、and-interactivity.2)semanticagsimprovecessibility.3)opeusofusofagscanoptimizeperformanceandensurecross-brows-compativeation。

HTMLタグと属性に一貫したコーディングスタイルを使用することの重要性を説明します。HTMLタグと属性に一貫したコーディングスタイルを使用することの重要性を説明します。May 01, 2025 am 12:01 AM

コードの読みやすさ、保守性、効率を向上させるため、一貫したHTMLエンコーディングスタイルは重要です。 1)低ケースタグと属性を使用します。2)一貫したインデントを保持し、3)シングルまたはダブルの引用符を選択して固執する、4)プロジェクトのさまざまなスタイルの混合を避け、5)きれいなスタイルやEslintなどの自動化ツールを使用して、スタイルの一貫性を確保します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。