Highcharts: Multi- [Violación] Se agregó un detector de eventos no pasivo a un evento 'touchstart' de bloqueo de desplazamiento ++

Creado en 9 jul. 2019  ·  41Comentarios  ·  Fuente: highcharts/highcharts

Situación

En MacOS / Chrome
_CandleStick: Cuando las StockTools están habilitadas_
Muchos eventListners notorios no manejados correctamente lanzados en la consola. se refiere principalmente al evento de inicio táctil
[Violation] Added non-passive event listener to a scroll-blocking 'touchstart' event. Consider marking event handler as 'passive' to make the page more responsive.

Reproducir

Esto se puede notar fácilmente en la consola de cualquier demostración basada en reacciones de StockChart con el módulo stock-toos habilitado.

Aquí hay demostraciones rápidas en vivo:
https://codesandbox.io/s/10yv629397
https://www.highcharts.com/stock/demo/stock-tools-gui

Vídeo:
https://i.imgur.com/Z80XISw.mp4

Screenshot 2019-07-08 at 16 38 38

Probado en
MacOS (Mojave) Chrome (versión 75.0.3770.100) y otras máquinas Mac y versiones de Chrome.

Done Bug

Comentario más útil

Lo confirmo, puedo reproducirlo ahora; tengo los mismos errores en la consola de Windows.

Todos 41 comentarios

¡Gracias por informarnos!

@sebastianbochan - ¿podrías echar un vistazo?

Nota interna
En stockTools agregamos eventos (clic / toque) por defecto H.addEvent . En la función debemos agregar soporte de {passive: true} para eventos táctiles.

¿Existe alguna solución rápida hasta que agregue soporte pasivo?

Hola @slashvortal ,
En este momento puede sobrescribir la función H.addEvent , pero, lo que es importante, requiere estar en el lugar correcto (antes de cargar los módulos).

Manifestación:

Gracias @sebastianbochan , esperaría la solución para poder usarla con el contenedor highcharts-react.

¿Algún plan para arreglar esto todavía? La demostración de solución alternativa vinculada por @sebastianbochan todavía me muestra 21 violaciones relacionadas con eventos.

Screen Shot 2019-11-28 at 11 22 40

Hola @pjanaya

Lamentablemente, todavía no hemos tenido tiempo de priorizar esto.

@pawelfus Ok, gracias. ¿Quizás debería considerar quitar la etiqueta "Tiene solución alternativa"? Dado que, al menos para mí, la solución alternativa no parece ser suficiente para eliminar los errores.

Nota interna:
Es un problema general, no solo de Highstock. Necesitamos verificar si todas las advertencias son correctas, a veces necesitamos preventDefault() y, a veces, no podemos prometer que un desarrollador no llamará a preventDefault() través de una de las devoluciones de llamada.

Hola a todos, ¿hay alguna actualización sobre este tema?

Hola @ dave-brown755,
En este momento no estamos trabajando en este caso, por lo que no tenemos nueva información al respecto. ¿Ha intentado utilizar nuestra solución alternativa?

Hola, no probé ninguna solución, ya que parecía haber una publicación posterior que solicitaba que se eliminara la etiqueta de solución. ¿Puede describir los pasos exactos que deben seguirse para implementar la solución para permitir que se elimine el error? Esto está afectando significativamente el rendimiento del navegador para nosotros. No quiero alejarme de los gráficos altos, pero no podremos vivir con la cantidad de errores que se generan. Espero que puedas ayudar Gracias Dave.

Gracias por los comentarios. Agregué inbox label que significa que el boleto tiene prioridad.

Hola, ¿alguna actualización sobre la prioridad del ticket?

Hola @ dave-brown755: este ticket ya tiene prioridad.

Estoy esperando que esto también se arregle
https://piyasa.paratic.com/

Pude ver que se había priorizado el ticket, pero preguntaba qué significa esto, ¿cuál es el tiempo de entrega típico para un ticket al que se le ha dado prioridad?

Eso significa que el boleto se recogerá una vez que finalicen las asignaciones actuales. Espero que este problema se solucione en v8.0.1 o v8.0.2.

Ya no veo ninguna advertencia en la consola (Chrome 80 más nuevo). Probado en 3 máquinas (Mac y Windows 10). ¿Alguien puede confirmar si el problema persiste y proporcionar los pasos exactos para reproducirlo?

Estoy usando v8.0.2 pero sigo viendo este mensaje. :(

Solo una nota aclaratoria: se lanzó la v8.0.1 (y la v8.0.2) y la v8.0.3 se lanzará en breve debido a otros errores críticos. No relacionado con el programa de lanzamiento que esperaba cuando dije que esperaba que el problema se solucionara en la v8.0.2.

@ raf18seb intentó depurar el problema hace unos días, pero no crearlo . Más detalles (versión os + chrome) o nueva demostración en vivo - muy apreciada.

@pawelfus también estamos viendo esta violación, con la última versión 8.0.4. Estamos retrocediendo a 5.0.11, donde el problema no existe, pero estamos buscando actualizarlo tan pronto como podamos.

@ onur-celik publicó un enlace arriba donde el problema está presente para la depuración. https://piyasa.paratic.com/

Estoy usando una Mac con Chrome 80.

image

¡Gracias! Puedo ver estos dos errores. Ambos eventos pueden estar bloqueados; por ejemplo, cuando mueve el dedo por el gráfico para ver la información sobre herramientas, no desea desplazarse por la página. Chrome no debería mostrar esta infracción (de acuerdo con las especificaciones, passive: true está configurado de forma predeterminada ..).

@ raf18seb - ¿podrías comprobar una vez más? ¿Quizás es un problema dependiente del sistema operativo?

Lo confirmo, puedo reproducirlo ahora; tengo los mismos errores en la consola de Windows.

hola, ¿este problema está resuelto? alguna solución para este problema? Me enfrento a este mismo problema cuando uso highchart para obtener datos complejos de la API

El problema aún no se ha resuelto. En este momento no tenemos ETA para este boleto, pero está en nuestro grupo de boletos de alta prioridad.

Está bien, gracias por la respuesta

También agradecería una solución para esto o solo una nota de cuándo podría ser lanzado.

Me alegra ver este problema "en curso" :)

Has mencionado fijo aquí. ¿Cuándo se pueden aplicar estos cambios en las versiones CDN?

Hola @sharmankita : el problema aún tiene la etiqueta in progress . Eso significa que no está arreglado, todavía estamos trabajando en ello.

Hola, ¿alguna actualización sobre esto? ¿Existe una ETA para la solución?

Hola @violetVo , sin ETA, todavía estamos trabajando en esto.

Mi estimación personal: dentro de las próximas dos versiones deberían estar listas.

¿Qué sucede cuando el evento se marca como "pasivo"?

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

No estoy seguro de a qué te refieres con @richardeschloss , ¿podrías

¿Qué sucede cuando el evento se marca como "pasivo"?

Vea la descripción aquí: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

passive: true // ¿ayuda esta opción?

Esto no funcionará en IE y Safari en iOS.

Pawel, parece que Rafal lo ha solucionado. Vi el PR que ayuda a responder la pregunta que tenía. Gracias.

finalmente 🥰

Hola,
¡Gracias por la solución! ¿Está disponible en la versión 8.2.2?

Hola @violetVo v8.2.2 fue lanzado hace ~ 2 semanas. La corrección estará disponible en la próxima versión.

@pawelfus , ¿tienes un plazo para el próximo lanzamiento? Sólo me preguntaba.
¡Espero que tú y el equipo estén a salvo (re: covid)!

Gracias @forgivegod , somos buenos 👍 ¡Espero que tú también seas bueno!

La próxima versión debería estar lista en unas pocas semanas.

¿Fue útil esta página
0 / 5 - 0 calificaciones