प्रगतिशील वेब ऐप्स के लिए प्रदर्शन को बढ़ावा देने के लिए काम करते हुए, मैं एक नई सुविधा के साथ आया Passive Event Listenersऔर मुझे अवधारणा को समझना मुश्किल है।
क्या हैं Passive Event Listenersऔर हमारी परियोजनाओं में इसकी क्या आवश्यकता है?
प्रगतिशील वेब ऐप्स के लिए प्रदर्शन को बढ़ावा देने के लिए काम करते हुए, मैं एक नई सुविधा के साथ आया Passive Event Listenersऔर मुझे अवधारणा को समझना मुश्किल है।
क्या हैं Passive Event Listenersऔर हमारी परियोजनाओं में इसकी क्या आवश्यकता है?
जवाबों:
निष्क्रिय ईवेंट श्रोता एक उभरता हुआ वेब मानक हैं, क्रोम 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);