HTML-Zeichnungstransaktion in Javascript?

8

Gibt es eine Möglichkeit, mehrere DOM-Manipulationsbefehle in einer Transaktion zu kapseln, damit der Inhalt nicht "flackert"? Etwas wie das:

%Vor%     
duality_ 28.08.2011, 12:45
quelle

2 Antworten

5

Jedes Mal, wenn Sie eine große Anzahl von Elementen aktualisieren müssen, richten Sie einfach eine Funktion mit allen Operationen ein, rufen Sie mozRequestAnimationFrame (oder webkitRequestAnimationFrame) auf. Erst nachdem Ihre Funktion vollständig ausgeführt wurde, werden Ihre Änderungen auf dem Bildschirm angezeigt.

Mehr unter: Ссылка

    
Shedokan 28.08.2011, 12:58
quelle
2

Ich glaube, dass Browser das Dokument nur dann neu zeichnen, wenn das Skript zur geraden Schleife zurückkehrt, sodass es bis zum Ende des Skripts nichts mehr rendert.

Trotzdem können einige Operationen den Browser zwingen, einige kostspielige Operationen wie die Neuberechnung der Dimensionen von Elementen im Dokument durchzuführen (z. B. beim Abrufen der Dimensionen eines Elements, nachdem einige DOM-Manipulationen vorgenommen wurden). Also sollten Sie DOM-Manipulationen so oft wie möglich aus dem Dokument entfernen.

Wenn Sie an einem Element viele Manipulationen vornehmen müssen, ist es möglicherweise billiger, es aus dem Dokumentbaum zu entfernen, Ihre Manipulationen durchzuführen und es wieder in den Baum einzufügen.

    
arnaud576875 28.08.2011 13:04
quelle

Tags und Links