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

tout en travaillant autour pour augmenter la performance pour les applications web progressives, je suis tombé sur une nouvelle fonctionnalité Passive Event Listeners et je trouve qu'il est difficile de comprendre le concept.

Que sont les Passive Event Listeners et quel est le besoin de l'avoir dans nos projets?

96
demandé sur Jon Adams 2016-06-09 12:21:04

1 réponses

les écouteurs D'événements passifs sont une norme web émergente, nouvelle fonctionnalité livré dans Chrome 51 qui offrent un potentiel important pour faire défiler performance. Chrome Notes De Version.

il permet aux développeurs d'opter pour une meilleure performance de défilement en éliminant la nécessité de défiler pour bloquer les écouteurs d'événements tactiles et de roues.

problème: tout moderne les navigateurs ont une fonction de défilement filetée pour permettre le déroulement en douceur du défilement, même lorsque JavaScript coûte cher, mais cette optimisation est partiellement neutralisée par la nécessité d'attendre les résultats de n'importe quels manipulateurs touchstart et touchmove , qui peuvent empêcher le défilement entièrement en appelant preventDefault() sur l'événement.

Solution: - {passive: true}

en marquant un récepteur tactile ou de roue comme passif, le le développeur promet que le gestionnaire n'appellera pas preventDefault pour désactiver le défilement. This frees the browser up to respond to scrolling immediately without waiting for JavaScript, thus ensuring a reliably smooth scrolling experience for the user .

addEventListener(document, "touchstart", function(e) {
    console.log(e.defaultPrevented);  // will be false
    e.preventDefault();   // does nothing since the listener is passive
    console.log(e.defaultPrevented);  // still false
  }, Modernizr.passiveeventlisteners ? {passive: true} : false);

DOM Spec , Demo Video , Explainer Doc

118
répondu Vivek 2017-09-22 21:06:14