函數節流與函數防抖

函數節流

適用場景:按鈕防重復點擊

/**
 * 函數節流  delay時間內,連續發起多個請求,只執行第一個請求
 * @param fun
 * @param delay
 * @returns {function()}
 */
const throttle = (fun, delay) => {
  let last = null;
  return (...cc) => {
    const now = + new Date();
    if (now - last > delay) {
      fun(...cc);
      last = now;
    }
  }
};

函數防抖

適用場景:input輸入框搜索

/**
 * 函數防抖  delay時間內,連續發起多個請求,只執行最后一個請求
 * @params fun 需要防抖的方法
 * @params delay 毫秒數
 */
const debounce = (fun, delay) => {
  let timer = null;
  return (...cc) => {
    clearTimeout(timer);
    timer = setTimeout(() => {
      fun(...cc);
    }, delay);
  }
};
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 函數節流 還記得上篇文章中說到的圖片懶加載嗎?我們在文章的最后實現了一個頁面滾動時按需加載圖片的方式,即在觸發滾動...
    柏丘君閱讀 2,875評論 1 19
  • 前言 在類似scroll、resize事件中執行大量DOM操作或者計算時,就會出現再次觸發事件而上一次事件中的DO...
    王阿王閱讀 1,006評論 0 2
  • 反復作,往往會是女生一貫的伎倆。要的無非是對方的回應,在乎你非你不可的回應,但是回想起來,他并不是你個人的所有物品...
    AhhT閱讀 2,796評論 1 1
  • 如果有一天,你找不到我了,千萬不要難過,不是我不愛你了,而是我終于有了勇氣離開,但請你記得,在這之前,我真的有傻...
    塵_寞閱讀 70評論 0 0