Das Scrollen sollte nicht durch die Live-Grafik beeinflusst werden.
Balkendiagramm mit Live-Daten verursacht Probleme beim Scrollen.
Dies hängt wahrscheinlich wieder mit den in #1410 beschriebenen Dingen zusammen.
Beim Einstellen der Seriendaten wird die Diagrammaktualisierungsfunktion aufgerufen:
https://github.com/dynatrace-oss/barista/blob/24647e8c15b388cd128ba102fe9f6cf1ffbb4620/libs/barista-components/chart/src/chart.ts#L232 -L236
In dieser Update-Funktion müssen wir das aktuelle Chart-Objekt zerstören und erneut instanziieren. Highcharts verfügt über eine Update-Funktion, die es dem Verbraucher jedoch nicht ermöglicht, alle Eigenschaften der Reihen oder Diagrammoptionen zu aktualisieren. Dies hat in der Vergangenheit zu Problemen geführt, weshalb wir in 6df1df81f9f935e6185505757893b4a4ba965099 die Neuinstanzierungsfunktionalität implementiert haben.
Vor der Änderung sah die Update-Funktion so aus, wobei die neuen Reihen und Optionen an die Highcharts.update
Funktion übergeben wurden.
https://github.com/dynatrace-oss/barista/blob/dd7fa6f35daa06593081a9700c74fe50757f77ef/src/lib/chart/chart.ts#L543 -L553
Während der Rekonstruktion hat das Diagrammelement für kurze Zeit die Höhe 0, was das erneute Scrollen bewirkt.
@TannerGilbert als Workaround kann dies umgangen werden, indem eine Höhe auf dem Container oder dem Diagramm selbst festgelegt wird, um den Reflow zu verhindern:
https://stackblitz.com/edit/scroll-bug-mvactj?file=src%2Fapp%2Fapp.component.scss
@ffriedl89 @lukasholzer Eine Lösung für dieses Problem wäre, die aktuelle Höhe des Diagramms in der Update-Methode auszulesen und auf das Host-Element zu setzen und nach dem Update wieder zu entfernen. Aber ich befürchte, dass dies einige Nebenwirkungen haben könnte. Was denken Sie?
Ja bezüglich der Nebenwirkungen bin ich mir nicht sicher, da wir nach dem Zurücksetzen der Höhe zB immer nach dem this._chart._afterRender
im Auswahlbereich (Dieser Betreff sollte ausgelöst werden) suchen.
Ich denke, der beste Ansatz wäre, es auszuprobieren, um Erkenntnisse darüber zu gewinnen, wie es sich verbessert.
@TannerGilbert möchten Sie diesen Fix zur Bibliothek beitragen? Selbstverständlich können wir Sie auch bei einer Pair-Programming-Sitzung unterstützen.
@lukasholzer Ich würde gerne bei der Behebung des Fehlers helfen, aber mein Wissen über die Barista-Codebasis und die Highcharts ist ziemlich begrenzt. Auch die Pair Programming Session hört sich gut an. Vielleicht besprechen wir eine Zeit für Slack.
Zur internen Problemverfolgung verschoben
Hilfreichster Kommentar
@lukasholzer Ich würde gerne bei der Behebung des Fehlers helfen, aber mein Wissen über die Barista-Codebasis und die Highcharts ist ziemlich begrenzt. Auch die Pair Programming Session hört sich gut an. Vielleicht besprechen wir eine Zeit für Slack.