摘要:背景在監(jiān)聽瀏覽器滾動(dòng)條的事件時(shí)該事件會(huì)觸發(fā)很多次,這樣當(dāng)快速滾動(dòng)時(shí)會(huì)有很差的性能,所以要限制事件觸發(fā)的頻率,可以防抖和節(jié)流,這里我記錄簡單的節(jié)流方法事件節(jié)流我是水滴上面判斷如果此時(shí)距離上次觸發(fā)達(dá)到了某個(gè)時(shí)間就立刻觸發(fā),否則就
背景:在監(jiān)聽瀏覽器滾動(dòng)條的scroll事件時(shí)該事件會(huì)觸發(fā)很多次,這樣當(dāng)快速滾動(dòng)時(shí)會(huì)有很差的性能,所以要限制事件觸發(fā)的頻率,可以防抖和節(jié)流,這里我記錄簡單的節(jié)流方法
事件節(jié)流
上面判斷如果此時(shí)距離上次觸發(fā)達(dá)到了某個(gè)時(shí)間就立刻觸發(fā),否則就延遲多少毫秒再觸發(fā),這樣當(dāng)持續(xù)滾動(dòng)時(shí)代碼會(huì)在每次滾動(dòng)結(jié)束后一段時(shí)間內(nèi)觸發(fā)一次,同時(shí)也會(huì)在時(shí)間間隔超過一段時(shí)間內(nèi)執(zhí)行一次。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://hztianpu.com/yun/108598.html
摘要:此時(shí)需要采用防抖和節(jié)流的方式來減少調(diào)用頻率,同時(shí)不影響原來效果。函數(shù)防抖當(dāng)持續(xù)觸發(fā)事件時(shí),一段時(shí)間段內(nèi)沒有再觸發(fā)事件,事件處理函數(shù)才會(huì)執(zhí)行一次,如果設(shè)定的時(shí)間到來之前就觸發(fā)了事件,延時(shí)重新開始。 js 防抖 節(jié)流 JavaScript 實(shí)際工作中,通過監(jiān)聽某些事件,如scroll事件檢測滾動(dòng)位置,根據(jù)滾動(dòng)位置顯示返回頂部按鈕;如resize事件,對某些自適應(yīng)頁面調(diào)整DOM的渲染;如ke...
摘要:文件為函數(shù)要傳入的參數(shù)返回事件處理函數(shù)添加事件監(jiān)聽節(jié)流函數(shù)一般用于事件的情況較多,因?yàn)檫@些事件的觸發(fā)是連續(xù)性的,需要在一個(gè)時(shí)間間隔內(nèi)只觸發(fā)一次。 showImg(https://segmentfault.com/img/remote/1460000018998747); 閱讀原文 前言 在前端開發(fā)當(dāng)中我們經(jīng)常會(huì)綁定一些事件觸發(fā)的某些程序執(zhí)行,有時(shí)這些事件會(huì)連續(xù)觸發(fā),如瀏覽器窗口 s...
摘要:一什么是節(jié)流節(jié)流函數(shù)就是讓事件處理函數(shù)在大于等于執(zhí)行周期時(shí)才能執(zhí)行,周期之內(nèi)不執(zhí)行,即事件一直被觸發(fā),那么事件將會(huì)按每小段固定時(shí)間一次的頻率執(zhí)行。我們通過一個(gè)簡單的示意來理解節(jié)流函數(shù)可以用時(shí)間戳和定時(shí)器兩種方式進(jìn)行處理。 本文共 2000 字,讀完只需 8 分鐘 上一篇文章講了去抖函數(shù),然后這一篇講同樣為了優(yōu)化性能,降低事件處理頻率的節(jié)流函數(shù)。 一、什么是節(jié)流? 節(jié)流函數(shù)(thrott...
摘要:本文會(huì)分別介紹什么是防抖和節(jié)流,它們的應(yīng)用場景,和實(shí)現(xiàn)方式。防抖和節(jié)流都是為了解決短時(shí)間內(nèi)大量觸發(fā)某函數(shù)而導(dǎo)致的性能問題,比如觸發(fā)頻率過高導(dǎo)致的響應(yīng)速度跟不上觸發(fā)頻率,出現(xiàn)延遲,假死或卡頓的現(xiàn)象。 本文由小芭樂發(fā)表 0. 引入 首先舉一個(gè)例子: 模擬在輸入框輸入后做ajax查詢請求,沒有加入防抖和節(jié)流的效果,這里附上完整可執(zhí)行代碼: 沒有防抖 ...
摘要:函數(shù)節(jié)流的原理函數(shù)節(jié)流的原理挺簡單的,估計(jì)大家都想到了,那就是定時(shí)器。在高級程序設(shè)計(jì)一書有介紹函數(shù)節(jié)流,里面封裝了這樣一個(gè)函數(shù)節(jié)流函數(shù),它把定時(shí)器存為函數(shù)的一個(gè)屬性個(gè)人的世界觀不喜歡這種寫法。 什么是函數(shù)節(jié)流? 介紹前,先說下背景。在前端開發(fā)中,有時(shí)會(huì)為頁面綁定resize事件,或者為一個(gè)頁面元素綁定拖拽事件(其核心就是綁定mousemove),這種事件有一個(gè)特點(diǎn),就是用戶不必特地?fù)v亂...
摘要:為什么需要函數(shù)防抖和函數(shù)節(jié)流在瀏覽器中某些計(jì)算和處理要比其他的昂貴很多。函數(shù)防抖如果一個(gè)事件被頻繁觸發(fā)多次,并且觸發(fā)的時(shí)間間隔過短,則防抖函數(shù)可以使得對應(yīng)的事件處理函數(shù)只執(zhí)行最后觸發(fā)的一次。函數(shù)防抖可以把多個(gè)順序的調(diào)用合并成一次。 1.為什么需要函數(shù)防抖和函數(shù)節(jié)流? 在瀏覽器中某些計(jì)算和處理要比其他的昂貴很多。例如DOM操作比起非DOM交互需要更多的內(nèi)存和CPU占用時(shí)間。連續(xù)嘗試進(jìn)行...
閱讀 1015·2021-10-13 09:48
閱讀 4084·2021-09-22 10:53
閱讀 3214·2021-08-30 09:41
閱讀 2021·2019-08-30 15:55
閱讀 2996·2019-08-30 15:55
閱讀 1924·2019-08-30 14:11
閱讀 2277·2019-08-29 13:44
閱讀 865·2019-08-26 12:23