手写防抖函数、手写节流函数

文章目录

  • [1 手写防抖函数](#1 手写防抖函数)
  • [2 手写节流函数](#2 手写节流函数)

1 手写防抖函数

  • 函数防抖是指在事件被触发n秒后再执行回调,如果在这n秒内事件又被触发,则重新计时。
  • 这可以使用在一些点击请求的事件上,避免因为用户的多次点击向后端发送多次请求。
javascript 复制代码
function debounce(fn, await) {
    let timer = null;
    return function() {
        let self = this;
        let args = arguments;
        if (timer) {
            clearTimeout(timer);
            timer = null;
        }
        timer = setTimeout(() => {
            fn.call(self, args);
        }, await);
    }
}

2 手写节流函数

  • 函数节流是指规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。
  • 节流可以使用在scroll函数的事件监听上,通过事件节流来降低事件调用的频率。
javascript 复制代码
function throttle(fn, delay) {
    let curTime = Date.now();
    return function() {
        let context = this;
        let args = arguments;
        let nowTime = Date.now();
        if (nowTime - curTime >= delay) {
            curTime = Date.now();
            return fn.apply(context, args);
        }
    }
}
相关推荐
假客套4 分钟前
Java小白入门教程:类和对象
java·开发语言
明教卢师傅19 分钟前
JavaScript前后端交互-AJAX/fetch
javascript·ajax·交互
hhmy12345637 分钟前
表格结构标签
java·服务器·前端
喵叔哟42 分钟前
5. 【Vue实战--孢子记账--Web 版开发】-- 主页UI
前端·vue.js·ui
依恋、阳光1 小时前
java的Stream流
java·开发语言·数据结构·stream
鱼骨不是鱼翅1 小时前
Spring Web MVC基础第一篇
前端·spring·mvc
墨绿色的摆渡人1 小时前
python | OpenCV小记(一):cv2.imread(f) 读取图像操作(待更新)
开发语言·python·opencv
小林熬夜学编程2 小时前
【Python】第七弹---Python基础进阶:深入字典操作与文件处理技巧
开发语言·前端·python·算法
明月看潮生2 小时前
青少年编程与数学 02-008 Pyhon语言编程基础 05课题、数据类型
开发语言·python·青少年编程·数据类型·编程与数学
大模型铲屎官2 小时前
HTML常见文本标签解析:从基础到进阶的全面指南
前端·css·html·编程·html5·文本标签