Barista: [Chart] Scrollprobleme mit Live-Daten

Erstellt am 6. Aug. 2020  ·  4Kommentare  ·  Quelle: dynatrace-oss/barista

Fehlerbericht

Erwartetes Verhalten

Das Scrollen sollte nicht durch die Live-Grafik beeinflusst werden.

Aktuelles Verhalten

Balkendiagramm mit Live-Daten verursacht Probleme beim Scrollen.

Schritte zum Reproduzieren

Gebrauchte Versionen:

  • Typoskript : 3.8.3
  • @angular/cdk : 9.2.4
  • @dynatrace/barista-components : 7.6.0

Anhänge

scroll-bug

P4 bug needs discussion

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.

Alle 4 Kommentare

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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen