成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript:簡單理解防抖和節流,如何定義防抖和節流函數

開發 前端
防抖函數,就是防止抖動,避免事件重復觸發。比如監聽輸入框的輸入,不應該在用戶每輸入一個字符就觸發監聽,而是在用戶輸入結束后再來監聽。

防抖

防抖函數,就是防止抖動,避免事件重復觸發。比如監聽輸入框的輸入,不應該在用戶每輸入一個字符就觸發監聽,而是在用戶輸入結束后再來監聽。

流程為:1、事件觸發;2、開啟定時器;3、當事件再次觸發的時候,就會清除上個定時器,然后重新開啟新的定時器;4、時間到了以后,就開始處理事件操作。

現在有一個輸入框,代碼如下:

import React from "react";
const Child2 = () => {
  return <input onChange={({ target: { value } }) => {
    console.log(value)
  }} />
};

效果如下圖:

圖片圖片

每輸入一個字符,就觸發監聽事件。如果是搜索查詢的話,那就不合適了。

現在在監聽事件上設置防抖:

import React from "react";
const Child2 = () => {
  const inputChange = debounce(({ target: { value } }) => {
    console.log(value)
  })
  return <input onChange={inputChange} />
};
function debounce(fn) {
  let timeout = null;
  return function () {
    clearTimeout(timeout);
    timeout = setTimeout(() => {
      fn.apply(this, arguments);
    }, 1000);
  };
}

如果在定時器時間內,事件再次觸發,那么就清空之前的定時器,然后重新開啟新的定時器。

效果圖:

圖片圖片

這就是防抖。

節流

節流就是控制事件觸發的頻率。比如按鈕點擊,在短時間內多次點擊,那么只需要觸發一次即可。

比如:

import React from "react";
const Child2 = () => {
  return <button onClick={() => {
    console.log("點擊")
  }}>點擊</button>
};

連續點擊多次,效果如下圖,如果是涉及到網絡請求的話,那么得不償失了。

圖片圖片

現在定義一下節流函數:

// 節流
function throttle(fn) {
  let timeout = null;
  return function () {
    if (timeout) return;
    timeout = setTimeout(() => {
      fn.apply(this, arguments);
      timeout = null;
    }, 1000);
  }
}

完整代碼:

import React from "react";
const Child2 = () => {
  const click = throttle(() => {
    console.log("點擊")
  })
  return <button onClick={click}>點擊</button>
};

// 節流
function throttle(fn) {
  let timeout = null;
  return function () {
    if (timeout) return;
    timeout = setTimeout(() => {
      fn.apply(this, arguments);
      timeout = null;
    }, 1000);
  }
}

在一秒內連續點擊多次,最后只有一次有效。圖片

責任編輯:武曉燕 來源: 讀心悅
相關推薦

2021-08-03 06:57:36

Js事件節流

2022-02-22 08:29:59

Vue前端防抖

2024-03-08 08:26:20

防抖節流delay?

2024-10-12 09:33:24

消息隊列多線程并行編程

2025-05-09 08:00:00

JavaScript代碼防抖節流

2023-12-21 08:51:37

防抖節流Vue.js

2021-11-19 09:01:09

防抖節流前端

2022-04-01 07:52:42

JavaScript防抖節流

2025-06-19 00:02:00

防抖節流函數

2022-05-15 22:08:58

ReactHookdebounce

2024-06-14 09:30:58

2024-05-28 09:26:46

2021-12-09 10:57:19

防抖函數 Debounce

2016-06-30 10:24:47

JavaScript節流Throttle

2021-12-13 07:50:14

前端性能優化

2025-07-02 08:00:00

防抖SpringBoot開發

2025-05-06 09:35:00

2017-04-25 16:20:10

頁面優化滾動優化

2024-08-29 15:26:21

2011-09-29 09:50:44

JavaScript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 性做久久久久久免费观看欧美 | 99久久精品免费看国产小宝寻花 | 91中文字幕| 国产一区二区三区久久久久久久久 | 中文字幕影院 | 天天操网| 久久久久国产精品一区 | 欧美成人在线网站 | 久久久精品天堂 | 国产成人午夜精品影院游乐网 | 91精品国产乱码久久久 | www..com18午夜观看 | 精品自拍视频在线观看 | 欧美成人激情 | 国产精品永久免费视频 | 久久久免费 | 日韩图区| 欧美9999| 自拍亚洲 | 久久久久久高潮国产精品视 | 久久精品国产99国产精品 | 一区二区三区视频在线免费观看 | 欧美日韩一二区 | 亚洲视频在线观看 | 中文字幕第一页在线 | 日韩一二区 | 国产精品一区久久久 | 欧美一级欧美一级在线播放 | 激情 亚洲| 欧美日韩高清在线一区 | 福利片在线 | 精品国产乱码一区二区三区a | 91视频网址 | 欧美精品国产精品 | 日p视频免费看 | 国产免费一级片 | 手机av网| 在线亚洲精品 | 国产精品成人在线观看 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 国产乱码精品一区二区三区五月婷 |