Highcharts: Multi- [Verletzung] Nicht passiver Ereignis-Listener zu einem scroll-blockierenden 'Touchstart'-Ereignis ++ hinzugefügt

Erstellt am 9. Juli 2019  ·  41Kommentare  ·  Quelle: highcharts/highcharts

Situation

Unter MacOS / Chrome
CandleStick: Wenn die StockTools aktiviert sind
Viele auffällige nicht ordnungsgemäß behandelte eventListners werden in die Konsole geworfen. bezieht sich hauptsächlich auf Touchstart-Ereignis
[Violation] Added non-passive event listener to a scroll-blocking 'touchstart' event. Consider marking event handler as 'passive' to make the page more responsive.

Reproduzieren

Dies kann in der Konsole jeder reaktionsbasierten Demo von StockChart mit aktiviertem Stock-Toos-Modul leicht wahrgenommen werden.

Hier ist eine kurze Live-Demo:
https://codesandbox.io/s/10yv629397
https://www.highcharts.com/stock/demo/stock-tools-gui

Video:
https://i.imgur.com/Z80XISw.mp4

Screenshot 2019-07-08 at 16 38 38

Getestet am
MacOS (Mojave) Chrome (Version 75.0.3770.100) und andere Mac-Computer und Chrome-Versionen.

Done Bug

Hilfreichster Kommentar

Ich bestätige, dass ich es jetzt reproduzieren kann - ich habe die gleichen Fehler in der Konsole unter Windows.

Alle 41 Kommentare

Danke für die Berichterstattung!

@sebastianbochan - könntest du einen Blick darauf werfen?

Interner Hinweis
In den stockTools fügen wir standardmäßig Ereignisse hinzu (Klicken / Berühren) H.addEvent . In der Funktion sollten wir die Unterstützung von {passive: true} für Touch-Ereignisse hinzufügen.

Gibt es eine schnelle Problemumgehung, bis Sie passive Unterstützung hinzufügen?

Hallo @slashvortal ,
In diesem Moment können Sie die Funktion H.addEvent überschreiben. Wichtig ist jedoch, dass sie sich an der richtigen Stelle befindet (bevor Sie Module laden).

Demo:

Danke @sebastianbochan , ich würde auf das

Gibt es Pläne, dies noch zu beheben? Die von @sebastianbochan verlinkte Workaround-Demo zeigt mir

Screen Shot 2019-11-28 at 11 22 40

Hallo @pjanaya

Leider hatten wir noch keine Zeit, dies zu priorisieren.

@pawelfus Ok, danke. Vielleicht sollten Sie das Etikett "Hat Problemumgehung" entfernen? Da zumindest für mich die Problemumgehung nicht ausreicht, um die Fehler zu beseitigen.

Interner Hinweis:
Es ist ein allgemeines Problem, nicht nur Highstock. Wir müssen überprüfen, ob alle Warnungen korrekt sind. Manchmal benötigen wir preventDefault() und manchmal können wir nicht versprechen, dass ein Entwickler preventDefault() über einen der Rückrufe aufruft.

Hallo zusammen, gibt es ein Update zu diesem Thema?

Hi @ dave-brown755,
Derzeit arbeiten wir nicht an diesem Fall, daher haben wir keine neuen Informationen über. Haben Sie versucht, unsere Problemumgehung zu verwenden?

Hallo, ich habe keine Problemumgehung versucht, da es in einem nachfolgenden Beitrag anscheinend darum ging, das Problemumgehungsetikett zu entfernen. Können Sie die genauen Schritte beschreiben, die zur Implementierung der Problemumgehung ausgeführt werden müssen, damit der Fehler behoben werden kann? Dies wirkt sich erheblich auf die Browserleistung aus. Ich möchte mich nicht von hohen Diagrammen entfernen, aber wir werden nicht in der Lage sein, mit der Menge der generierten Fehler zu leben. Hoffe du kannst helfen. Danke Dave.

Danke für die Bewertung. Ich habe inbox label hinzugefügt, was bedeutet, dass das Ticket priorisiert ist.

Hallo, gibt es ein Update zur Priorität des Tickets?

Hi @ dave-brown755 - dieses Ticket hat bereits Priorität.

Ich warte darauf, dass dies auch behoben wird
https://piyasa.paratic.com/

Ich konnte sehen, dass das Ticket priorisiert wurde, fragte aber, was dies bedeutet, was ist die typische Vorlaufzeit für ein Ticket, dem eine Priorität zugewiesen wurde?

Das heißt, das Ticket wird abgeholt, sobald die aktuellen Aufgaben abgeschlossen sind. Ich erwarte, dass dieses Problem in Version 8.0.1 oder Version 8.0.2 behoben wird.

Ich sehe keine Warnungen mehr in der Konsole (neuestes Chrome 80). Getestet auf 3 Computern (Mac und Windows 10). Kann jemand bestätigen, ob das Problem weiterhin auftritt, und die genauen Schritte zur Reproduktion angeben?

Ich verwende v8.0.2, sehe aber immer noch diese Meldung. :(

Nur eine Klarstellung: v8.0.1 wurde veröffentlicht (und v8.0.2) und v8.0.3 wird in Kürze wegen anderer kritischer Fehler veröffentlicht. Nicht im Zusammenhang mit dem Veröffentlichungsplan, den ich erwartet hatte, als ich sagte, dass ich erwarte, dass das Problem in Version 8.0.2 behoben wird.

@ raf18seb hat vor einigen Tagen versucht, das Problem zu debuggen, konnte dies jedoch nicht neu erstellen. Weitere Details (OS + Chrome-Version) oder neue Live-Demo - sehr geschätzt.

@pawelfus Wir sehen auch diesen Verstoß mit der neuesten Version 8.0.4. Wir kehren zu 5.0.11 zurück, wo das Problem nicht besteht, möchten es jedoch so bald wie möglich aktualisieren.

@ onur-celik hat oben einen Link gepostet, über den das Problem beim Debuggen vorliegt. https://piyasa.paratic.com/

Ich verwende einen Mac mit Chrome 80.

image

Vielen Dank! Ich kann diese beiden Fehler sehen. Beide Ereignisse können blockiert werden. Wenn Sie beispielsweise Ihren Finger über das Diagramm bewegen, um den Tooltip anzuzeigen, möchten Sie Ihre Seite nicht scrollen. Chrome sollte diese Verletzung nicht anzeigen (gemäß Spezifikation ist passive: true standardmäßig festgelegt.).

@ raf18seb - könntest du noch einmal

Ich bestätige, dass ich es jetzt reproduzieren kann - ich habe die gleichen Fehler in der Konsole unter Windows.

Hallo, ist dieses Problem gelöst? eine Lösung für dieses Problem? Ich habe das gleiche Problem, wenn ich Highchart verwende, um komplexe Daten von der API abzurufen

Das Problem wurde noch nicht gelöst. Derzeit haben wir keine ETA für dieses Ticket, befinden uns jedoch in unserer Gruppe von Tickets mit hoher Priorität.

Okay, danke für die Antwort

Ich würde mich auch sehr über ein Update dafür freuen oder nur darüber, wann es veröffentlicht werden könnte.

Ich bin froh, diese Ausgabe "in Bearbeitung" zu sehen :)

Sie haben hier behoben erwähnt. Wann können diese Änderungen in CDN-Versionen angewendet werden?

Hallo @sharmankita - Ausgabe hat noch in progress Label. Das heißt, es ist nicht behoben, wir arbeiten noch daran.

Hallo, irgendein Update dazu? Gibt es eine ETA für das Update?

Hallo @violetVo - keine ETA, wir arbeiten noch daran.

Meine persönliche Schätzung: In den nächsten zwei Versionen sollten fertig sein.

Was passiert, wenn das Ereignis als "passiv" markiert ist?

elm.on("touchstart", function(ev) {
  // stuff
}, {
  passive: true // does this option help?
});

Ich bin mir nicht sicher, was du meinst @richardeschloss - könntest du das

Was passiert, wenn das Ereignis als "passiv" markiert ist?

Siehe Beschreibung hier: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

passiv: wahr // hilft diese Option?

Dies funktioniert in IE und Safari unter iOS nicht.

Pawel, es scheint, als hätte Rafal dieses Problem behoben. Ich habe die PR gesehen, die mir bei der Beantwortung meiner Frage hilft. Vielen Dank.

endlich 🥰

Hallo,
Danke für die Fehlerbehebung! Ist es in Version 8.2.2 verfügbar?

Hi @violetVo v8.2.2 wurde vor ~ 2 Wochen veröffentlicht. Fix wird in der nächsten Version verfügbar sein.

@pawelfus hast du einen Zeitrahmen für die nächste Veröffentlichung? Ich wundere mich nur.
Hoffe du und das Team sind in Sicherheit (re: covid)!

Danke @forgivegod , wir sind gut 👍 Ich hoffe du bist auch gut!

Die nächste Version sollte innerhalb weniger Wochen fertig sein

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen