国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Passive Event Listeners——讓頁面滑動(dòng)更加流暢的新特性

XanaHopper / 2598人閱讀

摘要:這是因?yàn)榘姹疽院螅黾恿诵碌氖录东@機(jī)制就是告訴前頁面內(nèi)的事件監(jiān)聽器內(nèi)部是否會(huì)調(diào)用函數(shù)來阻止事件的默認(rèn)行為,以便瀏覽器根據(jù)這個(gè)信息更好地做出決策來優(yōu)化頁面性能。

Passive Event Listeners - 被動(dòng)事件監(jiān)聽器

在寫webapp頁面的時(shí)候,Chrome 提醒 

[Violation] Added non-passive event listener to a scroll-blocking "touchstart" event. Consider marking event handler as "passive" to make the page more responsive.

翻譯過來如下:

違反:沒有添加被動(dòng)事件監(jiān)聽器來阻止"touchstart"事件,請(qǐng)考慮添加事件管理者"passive",以使頁面更加流暢。

出現(xiàn)如上提示這可能是由于console的過濾器選擇了Verbose

Verbose-冗長(zhǎng),就是事無具細(xì)的把所有l(wèi)og顯示出來

Info-顯示開發(fā)者自定義的log及錯(cuò)誤信息

Warnings-顯示危險(xiǎn)信息

Errors-顯示錯(cuò)誤信息

一般默認(rèn)的是Info,不會(huì)提示這個(gè)提醒,雖然這并不影響代碼的正常運(yùn)行,但 是既然提醒了還是弄明白是什么原因的好一些。

這是因?yàn)镃hrome51版本以后,Chrome增加了新的事件捕獲機(jī)制-Passive Event Listeners

Passive Event Listeners就是告訴前頁面內(nèi)的事件監(jiān)聽器內(nèi)部是否會(huì)調(diào)用preventDefault函數(shù)來阻止事件的默認(rèn)行為,以便瀏覽器根據(jù)這個(gè)信息更好地做出決策來優(yōu)化頁面性能。當(dāng)屬性passive的值為true的時(shí)候,代表該監(jiān)聽器內(nèi)部不會(huì)調(diào)用preventDefault函數(shù)來阻止默認(rèn)滑動(dòng)行為,Chrome瀏覽器稱這類型的監(jiān)聽器為被動(dòng)(passive)監(jiān)聽器。目前Chrome主要利用該特性來優(yōu)化頁面的滑動(dòng)性能,所以Passive Event Listeners特性當(dāng)前僅支持mousewheel/touch相關(guān)事件

以前的事件捕獲代碼如下:

document.addEventListener("click", fn, false/true)

第三個(gè)參數(shù)決定了fn函數(shù)是在冒泡還是捕獲階段觸發(fā)。
現(xiàn)在第三個(gè)參數(shù)不但可以是布爾值,還可是一個(gè)對(duì)象

document.addEventListener("mousewheel", fn, {passive: true})

由于passive對(duì)象只在Chrome瀏覽器中支持,所以這里需要做一個(gè)兼容處理

var passiveSupported = false;
    try {
        var options = Object.defineProperty({}, "passive", {
            get: function() {
                passiveSupported = true;
            }
        });
        window.addEventListener("test", null, options);
    } catch(err) {}
    function fn() {
        console.log("fn")
    }
    document.addEventListener("mousewheel", fn, passiveSupported ? { passive: true } : false)

再看Chrome調(diào)試會(huì)發(fā)現(xiàn),Chrome已經(jīng)不要提醒讓人頭的提醒。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/87126.html

相關(guān)文章

  • vue的源碼解析(passive特性,感覺是面試加分項(xiàng))

    摘要:突然發(fā)現(xiàn)一個(gè)特性。這里核心是檢查是否支持,是什么提出的一個(gè)新的瀏覽器特性開發(fā)者通過一個(gè)新的屬性來告訴瀏覽器,當(dāng)前頁面內(nèi)注冊(cè)的事件監(jiān)聽器內(nèi)部是否會(huì)調(diào)用函數(shù)來阻止事件的默認(rèn)行為,以便瀏覽器根據(jù)這個(gè)信息更好地做出決策來優(yōu)化頁面性能。 今天我看源碼,因?yàn)橐贿吙匆贿呌浌P記所以看的慢。突然發(fā)現(xiàn)一個(gè)特性。所以單獨(dú)開一篇。感覺是一個(gè)秀bigger的特性,如果有一天面試官問你發(fā)現(xiàn)優(yōu)化頁面的時(shí)候,你提出可...

    0x584a 評(píng)論0 收藏0
  • vue的源碼解析(passive特性,感覺是面試加分項(xiàng))

    摘要:突然發(fā)現(xiàn)一個(gè)特性。這里核心是檢查是否支持,是什么提出的一個(gè)新的瀏覽器特性開發(fā)者通過一個(gè)新的屬性來告訴瀏覽器,當(dāng)前頁面內(nèi)注冊(cè)的事件監(jiān)聽器內(nèi)部是否會(huì)調(diào)用函數(shù)來阻止事件的默認(rèn)行為,以便瀏覽器根據(jù)這個(gè)信息更好地做出決策來優(yōu)化頁面性能。 今天我看源碼,因?yàn)橐贿吙匆贿呌浌P記所以看的慢。突然發(fā)現(xiàn)一個(gè)特性。所以單獨(dú)開一篇。感覺是一個(gè)秀bigger的特性,如果有一天面試官問你發(fā)現(xiàn)優(yōu)化頁面的時(shí)候,你提出可...

    phodal 評(píng)論0 收藏0
  • vue的源碼解析(passive特性,感覺是面試加分項(xiàng))

    摘要:突然發(fā)現(xiàn)一個(gè)特性。這里核心是檢查是否支持,是什么提出的一個(gè)新的瀏覽器特性開發(fā)者通過一個(gè)新的屬性來告訴瀏覽器,當(dāng)前頁面內(nèi)注冊(cè)的事件監(jiān)聽器內(nèi)部是否會(huì)調(diào)用函數(shù)來阻止事件的默認(rèn)行為,以便瀏覽器根據(jù)這個(gè)信息更好地做出決策來優(yōu)化頁面性能。 今天我看源碼,因?yàn)橐贿吙匆贿呌浌P記所以看的慢。突然發(fā)現(xiàn)一個(gè)特性。所以單獨(dú)開一篇。感覺是一個(gè)秀bigger的特性,如果有一天面試官問你發(fā)現(xiàn)優(yōu)化頁面的時(shí)候,你提出可...

    Karrdy 評(píng)論0 收藏0
  • passive的作用和原理

    摘要:直接由合成線程處理的事件不經(jīng)過內(nèi)核線程就能快速處理的輸入事件為手勢(shì)輸入事件滑動(dòng)捏合。劃重點(diǎn)最騷的來了,雖然手勢(shì)事件可以不在內(nèi)核線程處理,但是手勢(shì)事件的產(chǎn)生還是離不開內(nèi)核線程。 passived到底有什么用? passived主要用于優(yōu)化瀏覽器頁面滾動(dòng)的性能,讓頁面滾動(dòng)更順滑~~ passived產(chǎn)生的歷史時(shí)間線 addEventListener():大家都是認(rèn)識(shí)的,為dom添加觸發(fā)事件...

    nanchen2251 評(píng)論0 收藏0
  • 滑動(dòng)穿透(鎖body)終極探索

    摘要:場(chǎng)景當(dāng)頁面出現(xiàn)浮層的時(shí)候,滑動(dòng)浮層的內(nèi)容,正常情況下預(yù)期應(yīng)該是浮層下邊的內(nèi)容不會(huì)滾動(dòng)然而事實(shí)并非如此。當(dāng)屬性的值為的時(shí)候,代表該監(jiān)聽器內(nèi)部不會(huì)調(diào)用函數(shù)來阻止默認(rèn)滑動(dòng)行為,瀏覽器稱這類型的監(jiān)聽器為被動(dòng)監(jiān)聽器。 場(chǎng)景 當(dāng)頁面出現(xiàn)浮層的時(shí)候,滑動(dòng)浮層的內(nèi)容,正常情況下預(yù)期應(yīng)該是浮層下邊的內(nèi)容不會(huì)滾動(dòng);然而事實(shí)并非如此。showImg(https://user-gold-cdn.xitu.io...

    Michael_Lin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<