Web面接でよくある質問:リフローとリペイントの原理と違い

Web面接でよくある質問:リフローとリペイントの原理と違い

ブラウザのレンダリングメカニズム

1. ブラウザはページを処理するために2つのエンジンを使用し、ブラウザによってレンダリングエンジンは異なります。

レンダリングエンジン:

ChromとSafariは「WebKit」を使用します。

Firefor 「Geoko」を使用します

jsエンジン

2. ブラウザはHTMLを解析してDOMツリー、CSSを解析してCSSOM (CSS オブジェクト モデル);

3. 次にDOMツリーとCSSOMを組み合わせてレンダリングツリー(レンダリングツリー);

4. レンダリングツリーが完成すると、ブラウザはレンダリングツリーに従ってレイアウトします。レイアウトが完了すると、「ボックスモデル」が出力され、ビュー内の各ノードの位置とサイズを正確にキャプチャし、すべての測定値を画面上の物理的なピクセル値に変換します。(このステップにより、回流(reflow)が発生します)

5. レイアウトが完了すると、ブラウザはすぐにペイントスタンプイベントを発行し、レンダリングツリーを画面ピクセルに変換します。(このステップにより重繪(repaint)が行われます)

6.上記の手順を実行すると、ページが画面に表示されます。

ここに画像の説明を挿入

リフローは必然的に再描画を引き起こしますが、再描画は必ずしもリフローを引き起こすわけではありません。

リフローと再塗装

リフロー

コンセプト:

要素の構造、サイズ、レイアウトなどの変更によりレンダリング ツリーの一部またはすべてが変更されると、ブラウザーは DOM の一部またはすべてを再レンダリングします。

要素ノードの位置と距離が変更されたことを強調します。

逆流を引き起こす行為:

  • ブラウザウィンドウのサイズが変わる
  • コンテンツの変更
  • ノードを追加または削除する
  • CSS疑似クラスを有効にする
  • 等…

再描画

コンセプト:

ページ要素のスタイルがドキュメント フロー内の位置に影響を与えずに変更された場合、ブラウザーは単に新しいスタイルを要素に割り当てて再描画します。

要素ノードのスタイルを強調します。たとえば、色、境界線の実線が破線になります (位置と距離は変更されません)。

再描画を引き起こす操作:

  • 背景色のプロパティ値が変更された場合
  • border-colorプロパティの値が変更された場合
  • 可視性属性値が変更された場合
  • 等…

ここに画像の説明を挿入

以上がWeb面接でよく聞かれるリフローとリペイントの原理と違いについての詳しい内容です。Web面接でのリフローとリペイントについてさらに詳しく知りたい方は、123WORDPRESS.COM内の他の関連記事もぜひご注目ください!

以下もご興味があるかもしれません:
  • ブラウザのリフローと再描画を減らす方法
  • JavaScript における Repaint と Reflow の使用方法の詳細な説明
  • JavaScript パフォーマンスの最適化 (再描画とリフロー)
  • 高性能な WEB 開発ページのレンダリング、再描画、リフロー。

<<:  Linux で libudev を使用して USB デバイスの VID と PID を取得する方法

>>:  Navicat 経由で MySQL にリモート接続する方法

推薦する

Raspberry PiにDockerをインストールする方法

Raspberry Pi は ARM アーキテクチャをベースとしているため、Docker のインスト...

HTMLウェブページの基本概念の簡単な分析

ウェブページとは何ですか? HTML ドキュメントがブラウザカーネルによってレンダリングされた後に表...

MySQLテーブル構造を変更するコマンドを表示する

簡単な説明エディターはデータベースのエンコードが間違っているために問題に遭遇することが多く、これは頭...

Dockerイメージとコンテナの一般的な操作の詳細な説明

画像アクセラレータ中国の Docker Hub からイメージをプルすることが難しい場合があります。こ...

Linuxフラッシュのインストール方法

Linuxにフラッシュをインストールする方法1. Flashの公式サイトにアクセスし、ダウンロードを...

HTML タグ マーキーはさまざまなスクロール効果を実現します (JS 制御なし)

ページの自動スクロール効果は JavaScript で実現できますが、今日偶然、JS 制御なしでさま...

MySQLデータベースのトランザクションとロックの詳細な分析

目次1. 基本概念酸3.自動コミット4. トランザクション分離レベル5. 同時実行の一貫性の問題6....

Linuxファイルの基本属性の知識ポイントのまとめ

Linux システムは典型的なマルチユーザー システムです。異なるユーザーは異なる立場にあり、異なる...

HTMLはキャンバスを使用して箇条書きスクリーン機能を実装します

導入最近、大きな課題をこなす際に、弾幕プレイヤーを作る必要がありました。他の人のソースコードを借りて...

CocosCreator の新しいリソース管理システムの分析

目次1. 資源と建設1.1 クリエイターリソースファイルの基本1.2 リソースの構築2. アセットバ...

MySQL 選択最適化ソリューションに関する簡単な説明

目次実生活からの例クエリが遅い最適化する方法カウント制限最大値と最小値 min&max実生活...

HTMLの行間設定方法と問題点

<p></p> の行間隔を設定するには、style="line-h...

MySQLデータベースのnullに関する知識ポイントのまとめ

MySQL データベースでは、null は一般的な状況です。MySQL での null に関する注意...

繰り返し送信、繰り返し更新、バックオフ防止に関する問題と解決策の分析

1つ。序文<br />この種の質問は、どの専門掲示板でも見かけます。Google で検索...

JavaScript でオブジェクトをエレガントに扱う 6 つの方法

目次序文1. オブジェクト.freeze() 2. オブジェクト.seal() 3. オブジェクト....