私はrequestAnimationFrameの内部では、どのように再ペイント/リフローが発生しますか?
requestAnimationFrame(function() {
el.appendChild(otherEl)
el.appendChild(anotherEl)
anotherEl.removeChild(someOtherEl)
anotherEl.appendChild(yetAnotherEl)
})
ないような何かをたとえば、これの目的は、排尿、私たちは再描画/リフローの原因を避けるためにしようとしている時間中に発生する(同期?)リペイント/リフローを引き起こします?
ブラウザがスマートになり、最終的に結果のDOM構造をペイントするために、そのフレームが完了した後(すべてのDOM操作が完了した後)まで待ちますか?
リペイント/リフローを引き起こす可能性のあるものは何ですか?requestAnimationFrame内での作業は避けたいですか?
this html5rocks articleのスタイルリストには、修正されたときに再描画/再描画が発生するスタイルしか記載されていません。また、アクセスしたときにどのJavaScriptプロパティ(およびそのオブジェクトがどのオブジェクト上にあるか)がリフローを引き起こしているかどうか知ることもできます(つまり、特定のプロパティの値を取得するためにリフローが発生します)。原因
フレーム単位で、つまり子供を定期的に追加しているのですか? –
@TahirAhmed必ずしもそうではありません。数秒ごと、場合によっては1秒未満でも可能です。しかし、私はそれに限界を課したくはありません。ユースケースは何でもかまいません(たとえば、すばやく点滅するような要素をフレームごとに追加するなど)。 – trusktr
フレームごとに要素を削除すると、ブラウザが秒当たり60 *フレームをレンダリングする傾向があるため、視覚的に気付くのが速すぎると思います。 –