document.getElementById('my_id').innerHTML = 'A message';
// Next should only be executed once DOM manipulation has completed
.. do some stuff
これは、jQuery/Javascript - How to wait for manipulated DOM to update before proceeding with functionを見てきました。これはsetTimeOutを使用することを示しています。DOM操作が完了した後にのみ実行を続ける
document.getElementById('my_id').innerHTML = 'A message';
setTimeout(function(){
.. do some stuff
},10);
しかし、これは私が好きではないレースです。私は確かにする必要があり、待っている時間を無駄にしたくない。コメントの1つは、それがキューに入れられ、DOM操作が完了した後にのみ実行されることが保証されているので、0msでも機能すると述べています。それは絶対に確かですか?もしそうなら、この状態はどこですか?
(この操作は、この例よりも複雑ですが、挿入されたHTMLには独自のjavascriptが含まれていることもあります)。
レンダリングフェーズが検出されたばかりの場合は、適切なイベントを待機してください。 – pietro909
どのようなイベントですか?これは最初の読み込みではなく、JSによるDOM操作です。 – user984003
私の答えをお読みください:DOMを変更すると(ノードの追加、ノードの削除など)、いくつかのイベントが発生します。あなたのことを探して聞いてください:-) – pietro909