Zum Beispiel, wenn ich etwas tun, wieWas verursacht und verursacht keine Repaints/Reflows wenn innerhalb von requestAnimationFrame?
requestAnimationFrame(function() {
el.appendChild(otherEl)
el.appendChild(anotherEl)
anotherEl.removeChild(someOtherEl)
anotherEl.appendChild(yetAnotherEl)
})
Does, die eine (synchrone?) Verursachen repaint/Reflow während der Zeit geschehen, wenn wir neu streichen/Reflow zu vermeiden, sind versucht, zu verursachen, wodurch der Zweck der Miktion requestAnimationFrame
?
Oder wird der Browser schlau sein und warten, bis dieser Rahmen abgeschlossen ist (nachdem alle diese DOM-Manipulationen abgeschlossen sind), um schließlich die resultierende DOM-Struktur zu zeichnen?
Was sind all die Dinge, die Repaints/Reflow-Vorgänge verursachen können und die wir vermeiden möchten, während wir in einem RequestAnimationFrame sind?
Die Liste der Stile in this html5rocks article erwähnen nur Stil, die (ich denke) verursachen Repaint/Reflow, wenn sie geändert werden. Ich bin auch neugierig zu wissen, welche JavaScript-Eigenschaften (und auf welchem Objekt sie sich befinden) Reflow verursachen, wenn auf sie zugegriffen wird (d. H. Reflow passiert, um den Wert einer bestimmten Eigenschaft zu erhalten).
Machst du das auf einer Einzelbild-Basis, d. H. Anhängende Kinder regelmäßig? –
@TahirAhmed Nicht unbedingt. Es könnte alle paar Sekunden oder vielleicht sogar weniger als eine Sekunde dauern. Allerdings möchte ich keine Begrenzung aufstellen. Der Anwendungsfall könnte alles sein (z. B. Hinzufügen von entfernenden Elementen zu jedem Rahmen, um einen schnell blinkenden Effekt zu erzeugen). – trusktr
_adding Entfernen von Elementen in jedem frame_ würde ich denken viel zu schnell für Sie, um etwas visuell zu bemerken, weil Browser dazu neigen, * 60 * Bilder pro Sekunde zu rendern. –