Ich habe diese jQuery/Javascript - How to wait for manipulated DOM to update before proceeding with function gesehen, die die Verwendung von setTimeOut vorschlägt.Ausführung nur fortsetzen, nachdem die DOM-Manipulation abgeschlossen wurde
document.getElementById('my_id').innerHTML = 'A message';
setTimeout(function(){
.. do some stuff
},10);
Allerdings ist dies ein Rennen, das ich nicht mag. Ich muss sicher sein und auch nicht warten wollen. Einer der Kommentare besagt, dass auch 0ms funktioniert, da es in eine Warteschlange gestellt wird und garantiert nur ausgeführt wird, nachdem die DOM-Manipulation abgeschlossen ist. Ist das absolut sicher? Wenn ja, wo ist dieser Zustand oder getestet?
(Die Manipulation kann natürlich komplizierter sein als dieses Beispiel. Das eingefügte HTML kann sogar sein eigenes Javascript enthalten, das ausgeführt wird. Die eingefügte JS-Ausführung muss nicht abgeschlossen sein, aber das Rendering muss abgeschlossen sein.)
Wenn es nur um die Erkennung der Rendering-Phase geht, nur auf richtige Ereignisse zu hören. – pietro909
Welches Ereignis? Dies ist nicht das anfängliche Laden, sondern die DOM-Manipulation über JS. – user984003
Bitte lesen Sie meine Antwort: Wenn Sie das DOM ändern (Knoten hinzufügen, Knoten löschen, ...) werden einige Ereignisse ausgelöst. Schau einfach nach deinem und höre es dir an :-) – pietro909