Angular.js: Considere agregar soporte para detectores de eventos pasivos

Creado en 7 abr. 2017  ·  4Comentarios  ·  Fuente: angular/angular.js

Estoy enviando un...

  • [x] informe de error
  • [ ] solicitud de función
  • [ ] otro (no envíe solicitudes de soporte aquí (ver arriba))

Comportamiento actual:
Se agregó un detector de eventos no pasivo a un evento 'touchmove' que bloquea el desplazamiento. Considere marcar el controlador de eventos como "pasivo" para que la página responda mejor.

Comportamiento esperado / nuevo:
Los oyentes de eventos pasivos son una nueva característica en la especificación DOM que permite a los desarrolladores optar por un mejor rendimiento de desplazamiento al eliminar la necesidad de desplazarse para bloquear los oyentes de eventos táctiles y de rueda. Los desarrolladores pueden anotar los oyentes táctiles y de ruedas con {passive: true} para indicar que nunca invocarán preventDefault. Esta característica se envió en Chrome 51, Firefox 49 y aterrizó en WebKit. Para obtener una explicación oficial completa, lea más aquí.

Reproducción mínima del problema con instrucciones:

Versión angular: 1.6.4

Navegador: Chrome 59

Algo más:
http://stackoverflow.com/questions/39152877/considere-marcar-event-handler-as-passive-to-make-the-page-more-responsive

misc core moderate won't fix inconvenient feature

Comentario más útil

Hola, gracias por la sugerencia. Este comportamiento está en la especificación (https://dom.spec.whatwg.org/#dictdef-eventlisteneroptions), pero falta soporte en IE/Edge y Safari. Supongo que podríamos hacer una excepción aquí, ya que los navegadores que no lo admiten ignoran el objeto de opciones, ¿es correcto?

Todos 4 comentarios

Hola, gracias por la sugerencia. Este comportamiento está en la especificación (https://dom.spec.whatwg.org/#dictdef-eventlisteneroptions), pero falta soporte en IE/Edge y Safari. Supongo que podríamos hacer una excepción aquí, ya que los navegadores que no lo admiten ignoran el objeto de opciones, ¿es correcto?

¡Tienes razón!

El objeto puede ignorarse, pero se resolverá en un valor real para los navegadores que no admitan el objeto de opciones, lo que establece useCapture en verdadero.

Basado en este comentario https://github.com/angular/angular.js/pull/16026#issuecomment -305763416, esta es una solución para el futuro previsible

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