Häufig gestellte Fragen zum Webinterview: Prinzipien und Unterschiede zwischen Reflow und Repaint

Häufig gestellte Fragen zum Webinterview: Prinzipien und Unterschiede zwischen Reflow und Repaint

Der Rendering-Mechanismus des Browsers

1. Browser verwenden zwei Engines zur Seitenverarbeitung, und unterschiedliche Browser verwenden unterschiedliche Rendering-Engines

Rendering-Engine:

Chrom und Safari verwenden "WebKit",

Firefor nutzt „Geoko“

JS-Engine

2. Der Browser analysiert HTML in DOM-Baum, CSS analysieren in CSSOM (CSS-Objektmodell);

3. Anschließend werden DOM-Baum und CSSOM kombiniert, um Renderbaum (Renderbaum);

4. Nachdem der Renderbaum abgeschlossen ist, wird der Browser das Layout entsprechend dem Renderbaum erstellen. Nachdem das Layout abgeschlossen ist, wird ein „Boxmodell“ ausgegeben, das die Position und Größe jedes Knotens in der Ansicht genau erfasst und alle Messungen in physikalische Pixelwerte auf dem Bildschirm umwandelt. (Dieser Schritt führt zu回流(reflow) .)

5. Nachdem das Layout abgeschlossen ist, gibt der Browser sofort ein Paint-Stup-Ereignis aus, um den Renderbaum in Bildschirmpixel umzuwandeln. (Dieser Schritt führt zu重繪(repaint) .)

6. Nach den obigen Schritten wird die Seite auf dem Bildschirm angezeigt.

Bildbeschreibung hier einfügen

Beachten Sie, dass ein Reflow zwangsläufig zu einem Neuzeichnen führt, ein Neuzeichnen jedoch nicht unbedingt zu einem Reflow.

Reflow und Neulackierung

Umformen

Konzept:

Wenn sich ein Teil oder der gesamte Renderbaum aufgrund von Änderungen in der Struktur, Größe, dem Layout usw. der Elemente ändert, rendert der Browser einen Teil oder den gesamten DOM erneut.

Betonen Sie, dass sich Position und Abstand der Elementknoten geändert haben.

Aktionen, die Reflux verursachen:

  • Die Größe des Browserfensters ändert sich
  • Inhaltliche Änderungen
  • Knoten hinzufügen oder entfernen
  • CSS-Pseudoklassen aktivieren
  • usw…

Neu zeichnen

Konzept:

Wenn sich der Stil eines Seitenelements ändert, ohne dass seine Position im Dokumentfluss dadurch beeinflusst wird, weist der Browser dem Element einfach den neuen Stil zu und zeichnet es neu.

Betonen Sie den Stil von Elementknoten, beispielsweise die Farbe, die durchgezogene Linie wird zu einer gestrichelten Linie (ohne Änderung von Position und Abstand).

Operationen, die ein Neuzeichnen bewirken:

  • Wenn sich der Eigenschaftswert „background-color“ ändert
  • Wenn sich der Eigenschaftswert „Rahmenfarbe“ ändert
  • Wenn sich der Wert des Sichtbarkeitsattributs ändert
  • usw…

Bildbeschreibung hier einfügen

Oben finden Sie ausführliche Informationen zu den Prinzipien und Unterschieden von Reflow und Repaint, die in Webinterviews häufig gestellt werden. Weitere Informationen zu Reflow und Repaint in Webinterviews finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • So reduzieren Sie den Browser-Reflow und die Neuzeichnung
  • Detaillierte Erklärung der Repaint- und Reflow-Verwendung in JavaScript
  • Leistungsoptimierung für JavaScript (Neuzeichnen und Neufließen)
  • Leistungsstarkes Rendern, Neuzeichnen und Umbrechen von Webentwicklungsseiten.

<<:  So verwenden Sie libudev in Linux, um die VID und PID eines USB-Geräts abzurufen

>>:  So stellen Sie über Navicat eine Remoteverbindung zu MySQL her

Artikel empfehlen

Beispiel einer Methode zur Fehlerbehebung beim Lösen von Nginx-Portkonflikten

Problembeschreibung Ein Spring + Angular-Projekt ...

So verweisen Sie direkt auf Vue und Element-UI in HTML

Der Code sieht folgendermaßen aus: <!DOCTYPE h...

Analyse des Prinzips der MySQL-Indexlängenbeschränkung

Dieser Artikel stellt hauptsächlich die Analyse d...

Analyse von Context-Anwendungsszenarien in React

Kontextdefinition und Zweck Der Kontext bietet ei...

js-Methode zur Realisierung der Warenkorbberechnung

In diesem Artikelbeispiel wird der spezifische Co...

Zusammenfassung der schnellen Spaltenaddition bei MySQL 8.0 Online DDL

Inhaltsverzeichnis Problembeschreibung Historisch...

Detaillierte Erläuterung des Installationsprozesses von Jenkins auf CentOS 7

Installieren Sie Jenkins über Yum 1. Installation...

Ungewöhnliche, aber nützliche Tags in Xhtml

Xhtml hat viele Tags, die nicht häufig verwendet w...

Ein vollständiges Tutorial zur Verwendung der Axios-Kapselung in Vue

Vorwort Heutzutage wird in Projekten häufig die A...

So implementieren Sie das Rasterlayout mit Intervallen perfekt auf der Seite

Typische Layoutbeispiele Wie im obigen Bild gezei...

Fünf Möglichkeiten zum Durchlaufen von Objekten in JavaScript Beispielcode

Inhaltsverzeichnis Vorbereiten Fünf Waffen für … ...

20 Wegweiser auf dem Weg zum exzellenten UI (User Interface)-Designer

Einleitung: Der Interface-Designer Joshua Porter h...