Webseitenleistung optimieren: Tipps zur Vermeidung von Neuzeichnen und Umfließen
Mit der Beliebtheit mobiler Geräte und der kontinuierlichen Zunahme von Webinhalten stellen Benutzer immer höhere Anforderungen an die Webseitenleistung. Bei der Optimierung der Webseitenleistung stoßen wir häufig auf zwei sehr wichtige Konzepte, nämlich Repaint und Reflow. Diese beiden Konzepte haben einen großen Einfluss auf die Leistung von Webseiten. Durch das richtige Vermeiden oder Reduzieren von Neuzeichnungen und Reflows können die Ladegeschwindigkeit und das Benutzererlebnis von Webseiten erheblich verbessert werden. In diesem Artikel werden einige Techniken zur Vermeidung von Neuzeichnen und Reflow vorgestellt, um Entwicklern dabei zu helfen, die Leistung von Webseiten zu optimieren.
1. Was ist Neuzeichnen und Neufließen
Neuzeichnen bedeutet, dass der Browser den neuen Stil auf den Bildschirm zeichnet, wenn sich die Stilattribute des DOM-Elements ändern, aber keinen Einfluss auf dessen Layout hat. Der Neuzeichnungsvorgang erfordert keine Neuberechnung der Größe oder Position des Elements und ist daher kostengünstiger.
Reflow bedeutet, dass der Browser bei einer Änderung der Layoutattribute eines DOM-Elements die Größe und Position des Elements neu berechnet und andere verwandte Elemente neu anordnet, dh einen Reflow-Vorgang durchführt. Der Reflow-Vorgang ist relativ teuer und kann zu Problemen beim Neuzeichnen der Seite und sogar zu Flackern führen.
2. So vermeiden Sie Neuzeichnen und Umfließen
- Verwenden Sie Transformationsattribute anstelle von Top-/Links-Attributen. Die Verwendung von Transformationsattributen zum Ändern der Position von Elementen ist effizienter als die Verwendung von Top- und Left-Attributen zum Positionieren von Elementen. Dies liegt daran, dass die Transformationseigenschaft von der GPU verwaltet wird und keinen Reflow oder Neuzeichnen verursacht. Versuchen Sie daher für Vorgänge, die eine Elementverschiebung erfordern, das Transformationsattribut anstelle der Top- und Left-Attribute zu verwenden.
Sichtbarkeit anstelle von display:none verwenden
- Das display:none-Attribut führt dazu, dass das Element aus dem Dokumentfluss verschwindet und einen Umfluss und ein Neuzeichnen auslöst. Das Attribut „visibility:hidden“ löst nur ein Neuzeichnen aus, nicht einen Neufluss. Wenn Sie zwischen dem Ein- und Ausblenden eines Elements wechseln müssen, versuchen Sie, das Sichtbarkeitsattribut zu verwenden, um Reflow-Vorgänge zu vermeiden.
Vermeiden Sie häufige Operationen von Stilattributen.
- Wenn wir Stiloperationen an Elementen ausführen müssen, versuchen Sie, die Operation auf eine Operation zu konzentrieren, anstatt sie auf mehrere Operationen zu verteilen. Da jede Operation an Stileigenschaften einen Reflow und ein Neuzeichnen auslöst, kann die Konzentration von Operationen in einer Operation die Anzahl der Reflows reduzieren und die Leistung verbessern. Sie können Klassen verwenden, um mehrere Stileigenschaften gleichzeitig zu ändern, oder Methoden verwenden, um Elemente aus dem Dokumentfluss zu entfernen, um einen Umfluss zu vermeiden.
Verwenden Sie DocumentFragment
- Wenn Sie eine große Anzahl von DOM-Elementen einfügen müssen, können Sie DocumentFragment zum Zwischenspeichern verwenden und die Anzahl der Reflows reduzieren. Ein DocumentFragment ist ein kompaktes Dokumentobjekt, in dem Sie DOM-Elemente manipulieren und Reflows reduzieren können, indem Sie das DocumentFragment auf einmal in das Dokument einfügen.
Vermeiden Sie häufige Manipulationen von Layout-Eigenschaften.
- Zu den Layout-Eigenschaften gehören die Breite, Höhe, Ränder, Abstände usw. des Elements. Wenn Sie diese Eigenschaften bearbeiten, werden Reflow und Neuzeichnen ausgelöst. Versuchen Sie daher, häufige Änderungen der Layoutattribute von Elementen zu vermeiden. Stattdessen können Sie Positionierung, absolute Positionierung, Floating und andere Methoden verwenden.
Verwenden Sie CSS3-Animationen und -Übergänge.
- Die Verwendung von CSS3-Animationen und -Übergängen kann die Hardwarebeschleunigung zum Animieren der Seite nutzen. Im Vergleich zur Verwendung von JavaScript zum Erzielen von Animationseffekten kann die Verwendung von CSS3-Animationen und -Übergängen eine bessere Leistung bieten und die Anzahl der Reflows und Neuzeichnungen reduzieren.
Verwenden Sie Drosselung und Anti-Shake.
- In Situationen, in denen Sie das Scrollen, Änderungen der Fenstergröße und andere Ereignisse überwachen müssen, können Sie Drosselung und Anti-Shake verwenden, um die Anzahl der Ereignisauslöser und damit die Anzahl der Reflows zu reduzieren und zeichnet neu. Drosselung bedeutet, einen Vorgang nur einmal innerhalb eines bestimmten Zeitintervalls auszuführen, während Anti-Shaking bedeutet, einen Vorgang erneut auszuführen, nachdem der Vorgang für einen bestimmten Zeitraum angehalten wurde.
Zusammenfassung
Die Optimierung der Webseitenleistung ist eine Aufgabe, die alle Aspekte umfassend berücksichtigt. Neuzeichnen und Reflow sind zwei wichtige Faktoren, die sich auf die Webseitenleistung auswirken. Durch die sinnvolle Vermeidung von Neuzeichnen und Reflow kann die Ladegeschwindigkeit von Webseiten verbessert, die Wartezeit der Benutzer verkürzt und die Benutzererfahrung verbessert werden. In diesem Artikel werden einige Techniken vorgestellt, um Neuzeichnen und Umfließen zu vermeiden, z. B. die Verwendung von Transformation anstelle von Top/Left-Eigenschaften, die Verwendung von Visibility anstelle von display:none usw. Ich hoffe, dass diese Tipps Entwicklern helfen können, die Leistung von Webseiten zu optimieren und ein besseres Benutzererlebnis zu bieten.
Das obige ist der detaillierte Inhalt vonVerbessern der Webseitenleistung: Tipps zur Reduzierung von Neuzeichnungen und Reflows. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!