假設我們**有個搜尋框,使用者輸入文字我們會自動聯想匹配出一些結果供使用者選擇。我們可能首先想到的做法就是監聽keypress事件,然後非同步去查詢結果。這個方法本身是沒錯的,但是如果使用者快速的輸入了一連串的字元,假設是10個字元,那麼就會在瞬間觸發了10次的請求,這無疑不是我們想要的。我們想要的是使用者停止輸入的時候才去觸發查詢的請求,這時候函式防抖可以幫到我們。
函式防抖就是讓某個函式在上一次執行後,滿足等待某個時間內不再觸發此函式後再執行,而在這個等待時間內再次觸發此函式,等待時間會重新計算。
我們**經常會有這樣的需求,就是滾動瀏覽器滾動條的時候,更新頁面上的某些布局內容或者去呼叫後台的某介面查詢內容。同樣的,如果不對函式呼叫的頻率加以限制的話,那麼可能我們滾動一次滾動條就會產生n次的呼叫了。但是這次的情況跟上面的有所不同,我們不是要在每完成等待某個時間後去執行某函式,而是要每間隔某個時間去執行某函式,避免函式的過多執行,這個方式就叫函式節流。
下面是自己的實現:
函式防抖 函式節流
函式節流 乙個函式執行一次後,只有大於設定的執行週期後才會執行第二次。有個需要頻繁觸發的函式,出於優化效能的角度,在規定時間內,只讓函式觸發的第一次生效,後面不生效。節流函式 function throttle fn,delay 200 函式防抖 乙個需要頻繁觸發的函式,在規定時間內,只讓最後一次生...
函式防抖,函式節流
防抖原理 在事件被觸發規定的時間後才執行一次,如果在規定的時間內又一次觸發了事件則重新計時。應用場景 1.scroll事件滾動觸發 2.搜尋框輸入查詢 3.瀏覽器視窗縮放,resize事件 防抖實現 function debounce func,wait,bool wait 立即執行,如果calln...
函式防抖,函式節流
我又雙叒叕來撿起一切的老知識了 今天主要回顧的是 作為為數不多的面試中高頻問題且實際工作經常用到的 函式防抖,節流 首先科普一下函式防抖,節流的概念 函式防抖 就是指觸發事件後在 n 秒內函式只能執行一次,如果在 n 秒內又觸發了事件,則會重新計算函式執行時間。函式節流 限制乙個函式在一定時間內只能...