js實現函數節流


應用場景:

1)前端點提交按鈕,防止用戶短時觸發多次點擊;

2)類似百度輸入直接AJAX請求關鍵字,延遲處理。

function debounce(func, delay) {
  let timer;
 // 通過閉包使timer一直存在內存中
return function (...args) { if (timer) { clearTimeout(timer);
  } timer
= setTimeout(() => { func.apply(this, args); //通過apply還原this指向事件 }, delay) } }
// 點擊元素1秒后執行,如果1秒內重復點擊會清空之前定時,重新生成定時器! document.querySelector(
'.demo').addEventListener('click',debounce((e)=>{ // 需要執行的代碼 console.log(e); },1000),false);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM