Envisager de marquer gestionnaire d'événements comme "passif" pour rendre la page plus réactif

j'utilise marteau pour glisser et il devient agité lors du chargement d'autres choses, comme ce message d'avertissement me le dit.

le traitement de l'événement d'entrée "touchstart" a été retardé pour X ms en raison de le fil principal étant occupé. Envisager de marquer gestionnaire d'événements comme "passif" à rendez la page plus réactive.

Donc j'ai essayé d'ajouter "passif" à l'auditeur comme

Hammer(element[0]).on("touchstart", function(ev) {
  // stuff
}, {
  passive: true
});

mais je suis toujours l'obtention de cet avertissement.

149
demandé sur Sonicd300 2016-08-25 21:59:49

1 réponses

pour ceux qui reçoivent cet avertissement pour la première fois, il est en raison d'une caractéristique de bord de saignement appelé écouteurs D'événements passifs qui a été mis en œuvre dans les navigateurs assez récemment (été 2016). De https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md :

passive event listeners sont une nouvelle fonctionnalité dans le DOM spec qui permet les développeurs de l'opt-in à meilleure performance de défilement en éliminant les besoin de défiler pour bloquer les écouteurs d'événements touch and wheel. Les développeurs peuvent annoter les écouteurs tactiles avec {passive: true} pour indiquer qu'ils n'invoqueront jamais preventDefault. Cette fonctionnalité livré dans Chrome 51, Firefox 49 et atterri dans WebKit. Pour une complète explication officielle en lire plus ici.

Voir aussi: Ce sont passifs, des écouteurs d'événement?

que Vous pourriez avoir à attendre que votre .bibliothèque js pour mettre en œuvre le soutien.

si vous gérez des événements indirectement via une bibliothèque JavaScript, vous pouvez être à la merci du support de cette bibliothèque particulière pour la fonctionnalité. En août 2016, il semble qu'aucune des principales bibliothèques n'ait mis en place de soutien. Quelques exemples:

208
répondu Anson Kao 2018-09-19 17:54:14