先簡單介紹一下debounce
,從最簡單的一個場景入手,當用戶不斷點擊頁面,短時間內頻繁的觸法點擊事件,只有在用戶觸法事件后的n
s時間內,沒有再觸法事件,真正的監聽函數才會執行,如果在這段時間內再次觸法了事件,就需要重新計算這個n
s。
debounce
最主要的作用是把多個觸法事件的操作延遲到最后一次觸法執行,在性能上做了一定的優化。
不使用debounce
window.addEventListener('click', function (event) { var p = document.createElement('p') p.innerHTML = 'trigger' document.body.appendChild(p) })
使用debounce
window.addEventListener('click', debounce(function (event) { var p = document.createElement('p') p.innerHTML = 'trigger' document.body.appendChild(p) return 'aaaa' }, 500))
更多看這個文章吧
https://segmentfault.com/a/1190000015312430