Aşamalı web uygulamaları için performansı artırmak için çalışırken, yeni bir özellikle karşılaştım Passive Event Listeners
ve konsepti anlamakta zorlanıyorum.
Nelerdir Passive Event Listeners
ve projelerimizde sahip olma ihtiyacı nedir?
Aşamalı web uygulamaları için performansı artırmak için çalışırken, yeni bir özellikle karşılaştım Passive Event Listeners
ve konsepti anlamakta zorlanıyorum.
Nelerdir Passive Event Listeners
ve projelerimizde sahip olma ihtiyacı nedir?
Yanıtlar:
Pasif olay dinleyicileri, Chrome 51'de sunulan ve kaydırma performansını önemli bir şekilde artıran yeni bir web standardıdır. Chrome Sürüm Notları.
Geliştiricilerin, dokunma ve tekerlek olay dinleyicilerini engellemek için kaydırma ihtiyacını ortadan kaldırarak daha iyi kaydırma performansına katılmalarını sağlar.
Sorun: Tüm modern tarayıcılarda, pahalı JavaScript çalışırken bile kaydırmanın sorunsuz bir şekilde çalışmasına izin veren bir dişli kaydırma özelliği vardır, ancak bu optimizasyon, herhangi bir touchstart
ve touchmove
işleyicinin sonuçlarını beklemek zorunda kaldığı için kısmen yenilir ve bu da çağrıyı tamamen arayarak engelleyebilir. preventDefault()
olay.
Çözüm: {passive: true}
Bir dokunuş veya tekerlek dinleyicisini pasif olarak işaretleyerek, geliştirici işleyicinin preventDefault
kaydırmayı devre dışı bırakmaya çağırmayacağına söz veriyor. 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);