私はJavascriptを使用してUIを構築するライブラリを持っています。動的コンテンツが含まれているため、コンテンツをブラウザに入れてレイアウトを変更してサポートし、結果に応じて別のロジックを実行する必要があります。たとえば、あるテキストがあふれているかどうかを検出し、省略記号で切り捨てます。javascriptを使用して、保留中のレイアウト変更をブラウザに強制的にフラッシュすることはできますか?
通常、私は変更を加え、レイアウトを更新して残りのロジックを呼び出すのを待つためにwindow.setTimeout(0)を使用して実装します。これは、異なるブラウザが最小限のタイムアウトを実装しているため、ちらつきを防止するには遅すぎるか、または多くのCPUを使用する速度が遅いため、明らかに最適ではありません。
理想的には、DOMの変更を行い、レイアウトを同期して更新し、直ちにインラインで「フィックスアップ」ロジックを実行したいと考えています。何か案は?
わかりません。遅い最小タイムアウトを伴うsetTimeout(0)がフリッカを引き起こすのはなぜですか? – Alohci
最小タイムアウトが長すぎる場合(100msを超えるとすると)、私が行う更新チェーンはちらつきを引き起こします:最初のステップは何かを行い、次に2番目のステップはそれを修正し、3番目のステップは何か他のことを行います - すべてを一度に行うのではなく、 – Guss