摘要:函數節流函數防抖總結其實函數節流和防抖都是閉包的運用,保存外部函數中的變量值,只不過節流是在多次操作中取第一次,而防抖是取多次操作中的最后一次,具體原因是因為是中的宏任務,在主線程代碼執行完畢之后才會執行其中的回調方法。
函數節流
function throttle(fn, delay = 2000) { let Timer = null return function () { let Now = +new Date() if ( Now - Timer >= delay || !Timer) { fn.call(this, ...arguments) Timer = Now } } }
函數防抖
function debounce(fn, delay = 300) { let Timer return function() { let _arg = arguments let _this = this if (Timer) { clearTimeout(Timer) } Timer = setTimeout(() => { fn.apply(this, _arg) }, delay); } }
總結:
其實函數節流和防抖都是閉包的運用,保存外部函數中的變量值,只不過節流是在多次操作中取第一次,而防抖是取多次操作中的最后一次,具體原因是因為setTimeout是eventloop中的宏任務,在主線程代碼執行完畢之后才會執行其中的回調方法。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/102392.html
摘要:若時間差大于間隔時間,則立刻執行一次函數。不同點函數防抖,在一段連續操作結束后,處理回調,利用和實現。函數防抖關注一定時間連續觸發的事件只在最后執行一次,而函數節流側重于一段時間內只執行一次。 原博客地址,歡迎star 函數防抖和節流 函數防抖和函數節流:優化高頻率執行js代碼的一種手段,js中的一些事件如瀏覽器的resize、scroll,鼠標的mousemove、mouseover...
摘要:概念函數防抖和函數節流,兩者都是優化高頻率執行代碼的一種手段。防抖任務頻繁觸發的情況下,只有任務觸發的間隔超過指定間隔的時候,任務才會執行。節流指定時間間隔內只會執行一次任務一定時間內方法只跑一次。 概念 函數防抖和函數節流,兩者都是優化高頻率執行js代碼的一種手段。 防抖:任務頻繁觸發的情況下,只有任務觸發的間隔超過指定間隔的時候,任務才會執行。 節流:指定時間間隔內只會執行一次任...
摘要:定時器實現當觸發事件的時候,我們設置一個定時器,再觸發事件的時候,如果定時器存在,就不執行直到秒后,定時器執行執行函數,清空定時器,這樣就可以設置下個定時器。當最后一次停止觸發后,由于定時器的延遲,可能還會執行一次函數。 一、什么是防抖和節流 Ps: 比如搜索框,用戶在輸入的時候使用change事件去調用搜索,如果用戶每一次輸入都去搜索的話,那得消耗多大的服務器資源,即使你的服務器資源...
閱讀 2471·2023-04-25 21:41
閱讀 1647·2021-09-22 15:17
閱讀 1921·2021-09-22 10:02
閱讀 2433·2021-09-10 11:21
閱讀 2569·2019-08-30 15:53
閱讀 996·2019-08-30 15:44
閱讀 946·2019-08-30 13:46
閱讀 1125·2019-08-29 18:36