摘要:突然發(fā)現(xiàn)一個特性。這里核心是檢查是否支持,是什么提出的一個新的瀏覽器特性開發(fā)者通過一個新的屬性來告訴瀏覽器,當(dāng)前頁面內(nèi)注冊的事件監(jiān)聽器內(nèi)部是否會調(diào)用函數(shù)來阻止事件的默認(rèn)行為,以便瀏覽器根據(jù)這個信息更好地做出決策來優(yōu)化頁面性能。
今天我看源碼,因為一邊看一邊記筆記所以看的慢。突然發(fā)現(xiàn)一個特性。所以多帶帶開一篇。passive
感覺是一個秀bigger的特性,如果有一天面試官問你發(fā)現(xiàn)優(yōu)化頁面的時候,
你提出可以檢查瀏覽器是否可以使用該特性。提升滾動流暢度。
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,
tips1, passive是什么?Chrome提出的一個新的瀏覽器特性:Web開發(fā)者通過一個新的屬性passive來告訴瀏覽器,當(dāng)前頁面內(nèi)注冊的事件監(jiān)聽器內(nèi)部是否會調(diào)用preventDefault函數(shù)來阻止事件的默認(rèn)行為,以便瀏覽器根據(jù)這個信息更好地做出決策來優(yōu)化頁面性能。當(dāng)屬性passive的值為true的時候,代表該監(jiān)聽器內(nèi)部不會調(diào)用preventDefault函數(shù)來阻止默認(rèn)滑動行為,Chrome瀏覽器稱這類型的監(jiān)聽器為被動(passive)監(jiān)聽器。目前Chrome主要利用該特性來優(yōu)化頁面的滑動性能,所以Passive Event Listeners特性當(dāng)前僅支持mousewheel/touch相關(guān)事件
2, Passive Event Listeners特性是為了提高頁面的滑動流暢度而設(shè)計的,頁面滑動流暢度的提升,直接影響到用戶對這個頁面最直觀的感受。這個不難理解,想象一下你想要滑動某個頁面瀏覽內(nèi)容,當(dāng)你用鼠標(biāo)滾輪或者用手指觸摸屏幕上下滑動的時候,頁面并沒有按你的預(yù)期進(jìn)行滾動,此時你內(nèi)心往往會感覺到一絲不爽,甚至想放棄該頁面。Facebook之前做了一項試驗,他們將頁面滑動的響應(yīng)刷新率從60FPS降低到30FPS的時候,發(fā)現(xiàn)用戶的參與度急速下降。
3,passive的簡單實現(xiàn)
function handler(event) { console.log(event.type); // log event type } document.addEventListener("mousewheel", handler, {passive:true});
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/117542.html
摘要:突然發(fā)現(xiàn)一個特性。這里核心是檢查是否支持,是什么提出的一個新的瀏覽器特性開發(fā)者通過一個新的屬性來告訴瀏覽器,當(dāng)前頁面內(nèi)注冊的事件監(jiān)聽器內(nèi)部是否會調(diào)用函數(shù)來阻止事件的默認(rèn)行為,以便瀏覽器根據(jù)這個信息更好地做出決策來優(yōu)化頁面性能。 今天我看源碼,因為一邊看一邊記筆記所以看的慢。突然發(fā)現(xiàn)一個特性。所以單獨開一篇。感覺是一個秀bigger的特性,如果有一天面試官問你發(fā)現(xiàn)優(yōu)化頁面的時候,你提出可...
摘要:突然發(fā)現(xiàn)一個特性。這里核心是檢查是否支持,是什么提出的一個新的瀏覽器特性開發(fā)者通過一個新的屬性來告訴瀏覽器,當(dāng)前頁面內(nèi)注冊的事件監(jiān)聽器內(nèi)部是否會調(diào)用函數(shù)來阻止事件的默認(rèn)行為,以便瀏覽器根據(jù)這個信息更好地做出決策來優(yōu)化頁面性能。 今天我看源碼,因為一邊看一邊記筆記所以看的慢。突然發(fā)現(xiàn)一個特性。所以單獨開一篇。感覺是一個秀bigger的特性,如果有一天面試官問你發(fā)現(xiàn)優(yōu)化頁面的時候,你提出可...
摘要:如問到是否使用某框架,實際是是問該框架的使用場景,有什么特點,和同類可框架對比一系列的問題。這兩個方向的區(qū)分點在于工作方向的側(cè)重點不同。 [TOC] 這是一份來自嗶哩嗶哩的Java面試Java面試 32個核心必考點完全解析(完) 課程預(yù)習(xí) 1.1 課程內(nèi)容分為三個模塊 基礎(chǔ)模塊: 技術(shù)崗位與面試 計算機基礎(chǔ) JVM原理 多線程 設(shè)計模式 數(shù)據(jù)結(jié)構(gòu)與算法 應(yīng)用模塊: 常用工具集 ...
摘要:第一個問題阿里面試都問什么這個是讓我最頭疼的一個問題,也是群里的猿友們問的最多的一個問題。我參加的是阿里的社招面試,而社招不同于校招,問題的范圍其實是很隨機的。所以,不妨就這兩個階段,談?wù)勆缯忻嬖嚨臏?zhǔn)備,而不是去把阿里面試的過程背一遍。 引言其實本來真的沒打算寫這篇文章,主要是記憶力不是很好,不像一些記憶力強的人,面試完以后,幾乎能把自己和面試官的對話都給記下來。自己當(dāng)初面試完以后,除...
閱讀 3602·2021-11-24 10:25
閱讀 2508·2021-11-24 09:38
閱讀 1217·2021-09-08 10:41
閱讀 2903·2021-09-01 10:42
閱讀 2569·2021-07-25 21:37
閱讀 1981·2019-08-30 15:56
閱讀 914·2019-08-30 15:55
閱讀 2749·2019-08-30 15:54