निष्क्रिय घटना सुनने वाले क्या हैं?


180

प्रगतिशील वेब ऐप्स के लिए प्रदर्शन को बढ़ावा देने के लिए काम करते हुए, मैं एक नई सुविधा के साथ आया Passive Event Listenersऔर मुझे अवधारणा को समझना मुश्किल है।

क्या हैं Passive Event Listenersऔर हमारी परियोजनाओं में इसकी क्या आवश्यकता है?


जवाबों:


212

निष्क्रिय ईवेंट श्रोता एक उभरता हुआ वेब मानक हैं, क्रोम 51 में नया फीचर भेजा गया है जो प्रदर्शन को स्क्रॉल करने के लिए एक प्रमुख क्षमता प्रदान करता है। Chrome रिलीज़ नोट्स।

यह डेवलपर्स को टच और व्हील इवेंट श्रोताओं पर ब्लॉक करने के लिए स्क्रॉल करने की आवश्यकता को समाप्त करके बेहतर स्क्रॉल प्रदर्शन को ऑप्ट-इन करने में सक्षम बनाता है।

समस्या: सभी आधुनिक ब्राउज़रों के पास स्क्रॉलिंग सुविधा है जो स्क्रॉलिंग को महंगे जावास्क्रिप्ट चलाने पर भी आसानी से चलाने की अनुमति देता है, लेकिन यह अनुकूलन किसी भी touchstartऔर touchmoveहैंडलर के परिणामों की प्रतीक्षा करने की आवश्यकता से आंशिक रूप से पराजित होता है , जो स्क्रॉल को पूरी तरह से कॉल करके रोक सकता है preventDefault()घटना पर।

उपाय: {passive: true}

एक स्पर्श या पहिया श्रोता को निष्क्रिय के रूप में चिह्नित करके, डेवलपर हैंडलर preventDefaultको अक्षम करने के लिए कॉल नहीं करेगा वादा कर रहा है। This frees the browser up to respond to scrolling immediately without waiting for JavaScript, thus ensuring a reliably smooth scrolling experience for the user

document.addEventListener("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);

डोम कल्पना , डेमो वीडियो , व्याख्याता डॉक्टर


1
इसलिए हमें हमेशा कोड की इस पंक्तियों को जोड़ना चाहिए (कम से कम अधिकांश मामलों के लिए), सही?
अल्टियानो पियानो जुंग

यह आपके js इंजन को मोज़िला में क्रैश करता है। आप इस ईवेंट श्रोता को संलग्न करने से पहले बेहतर तरीके से ब्राउज़र का पता लगा
लेते हैं

@AltianoGerung जब ब्राउज़र इसे सुझाता है। आप संदेश को कंसोल की जानकारी या चेतावनी टैब में देखेंगे।
हिमायतीस

@ yaspenalty.com हम निम्नलिखित पॉलीफ़िल का उपयोग कर सकते हैं और ब्राउज़र चेक से बच सकते हैं। स्क्रॉलिंग के मामलों के लिए, निष्क्रिय ईवेंट श्रोताओं का उपयोग करना एक बड़ा प्लस है। github.com/WICG/EventListenerOptions/blob/gh-pages/…
विक्रांत सिवाच

@ विक्रांत सिवाच ने बड़ी सलाह दी। पॉलीफ़िल त्वरित और कुछ हद तक दर्द रहित होते हैं जब आप उन सभी को प्रबंधित करते हैं चलो
पॉलीफ़िल.जेएस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.