您好,登錄后才能下訂單哦!
這篇文章主要介紹了vue源碼的使用示例,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
var supportsPassive = false; if (inBrowser) { try { var opts = {}; Object.defineProperty(opts, 'passive', ({ get: function get () { /* istanbul ignore next */ supportsPassive = true; } })); // https://github.com/facebook/flow/issues/285 window.addEventListener('test-passive', null, opts); } catch (e) {} }
這里核心是檢查是否支持Passive,
tips
- 1, passive是什么?Chrome提出的一個新的瀏覽器特性:Web開發者通過一個新的屬性passive來告訴瀏覽器,當前頁面內注冊的事件監聽器內部是否會調用preventDefault函數來阻止事件的默認行為,以便瀏覽器根據這個信息更好地做出決策來優化頁面性能。當屬性passive的值為true的時候,代表該監聽器內部不會調用preventDefault函數來阻止默認滑動行為,Chrome瀏覽器稱這類型的監聽器為被動(passive)監聽器。目前Chrome主要利用該特性來優化頁面的滑動性能,所以Passive Event Listeners特性當前僅支持mousewheel/touch相關事件
- 2, Passive Event Listeners特性是為了提高頁面的滑動流暢度而設計的,頁面滑動流暢度的提升,直接影響到用戶對這個頁面最直觀的感受。這個不難理解,想象一下你想要滑動某個頁面瀏覽內容,當你用鼠標滾輪或者用手指觸摸屏幕上下滑動的時候,頁面并沒有按你的預期進行滾動,此時你內心往往會感覺到一絲不爽,甚至想放棄該頁面。Facebook之前做了一項試驗,他們將頁面滑動的響應刷新率從60FPS降低到30FPS的時候,發現用戶的參與度急速下降。
- 3,passive的簡單實現
function handler(event) { console.log(event.type); // log event type } document.addEventListener("mousewheel", handler, {passive:true});
感謝你能夠認真閱讀完這篇文章,希望小編分享vue源碼的使用示例內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。