封裝節流器

2021-10-09 09:33:43 字數 746 閱讀 9349

/**

* throttle方法可以實現兩種功能

* 1: 開啟節流器 throttle(fn, {})

* @fn: 要節流的函式

* @options 配置物件

* @context 執行時候的上下文(this)

* @args 原函式所需要的引數

* @time 決定延遲的時間

*

* 2: 關閉節流器 throttle(false, fn)

* @fasle 是乙個標識, 當傳遞false的時候 說明是要關閉節流器了

* @fn 要節流的函式

* **********/

function throttle(fn, options)

// 清除之前的延時器

cleartimeout(fn.__throttle);

// 由於每乙個函式要對應乙個節流器,所以給fn新增乙個自定義屬性

fn.__throttle = settimeout(function() , options.time);

} else if (typeof fn === "boolean")

}呼叫封裝的方法

function aaa(){

}//開啟節流 事件中

throttle(aaa, );

//關閉節流

throttle(false,aaa)

防抖節流函式封裝

為什麼引入防抖和節流當乙個函式被頻繁 無限制的被呼叫的時候,會加重瀏覽器的負擔,造成瀏覽器卡頓的現象。例如 常用瀏覽器滾動scroll,滑鼠移動onmousemove事件觸發的事件。因此引入了防抖和節流兩個概念來解決這個問題。防抖 debounce監聽乙個輸入框的,文字變化後觸發change事件.直...

函式節流器

1 函式節流器 函式節流的基本思想是設定乙個定時器,在指定時間間隔內執行 時清楚上一次的定時器,並設定另乙個定時器,知道函式請求停止並超過時間間隔才會執行。function scrollfn function throttle method,context 300 window.onscroll f...

前端面試必備 防抖與節流之節流及其封裝函式

節流相對於防抖來說就很好理解了,節流就是限制流量,比如,在一段時間內,只能觸發一次,而不是像防抖一樣,一直延遲延遲。在這裡,這段時間就是乙個判斷標準,我們只需要取此次觸發事件的時間和上次觸發事件的時間的差值,與我們設定的這段時間進行比較即可,如果超過,那麼就可以觸發,如果不可以,就要重新設定計時器。...