Tach!
Wenn sich im Browser etwas tut, das mit JavaScript behandelt werden soll (sprich: irgendein Event oder ein Timer, der zuschlägt), werden die dafür registrierten JS Handler aufgerufen. Das nennt sich auch ein Makrotask. Wenn dieser eine Task beendet ist, folgen ggf. noch die daraus generierten Mikrotasks, dann kommen eventuell Redraw- und Layout und danach der nächste Makrotask.
Ach die Event Loop.
Mit einem Aufrufzyklus meinte ich einen Makrotask. DOM-spezifische Daten von einem Makrotask in den nächsten mitzunehmen setzt voraus, dass man GANZ genau weiß was man tut, denn zwischen zwei Makrotasks kann alles mögliche passieren.
Alles setzt voraus, dass man ganz genau weiß, was man tut. In dem Fall scheint es mir, dass du im Verdacht hast, dass sich an entscheidender Stelle das DOM ändert, aber dem nicht so ist. Auch Event Loop und Micro- und Macrotasks bauen das DOM nicht einfach mal so komplett neu auf, so dass Referenzen verlorengehen, von Dingen, die man nicht angefasst hat. Im vorliegenden Fall wäre das Problem nur, wenn über die Animation oder andere Wege der Knoten entfernt und neu erstellt worden wäre. Das wäre zu untersuchen und nicht einfach nur eine vage anzunehmen, dass sowas passieren könnte.
In einer fetten SPA kann auch innerhalb eines Makrotasks einiges los sein, das man innerhalb einer kleinen, unschuldigen JS Funktion nicht überschaut.
Wenn in einer fetten SPA sich ständig das DOM ändert, vor allem in Teilen, die gar nicht geändert werden, dann macht wohl eher die SPA oder dessen Autor(en) was falsch. Oder irgendwer hat den Überblick verloren.
dedlfix.