/**
* 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...
前端面試必備 防抖與節流之節流及其封裝函式
節流相對於防抖來說就很好理解了,節流就是限制流量,比如,在一段時間內,只能觸發一次,而不是像防抖一樣,一直延遲延遲。在這裡,這段時間就是乙個判斷標準,我們只需要取此次觸發事件的時間和上次觸發事件的時間的差值,與我們設定的這段時間進行比較即可,如果超過,那麼就可以觸發,如果不可以,就要重新設定計時器。...