博客
关于我
JS实现防抖与节流(使用按钮触发事件)
阅读量:554 次
发布时间:2019-03-09

本文共 1151 字,大约阅读时间需要 3 分钟。

JS实现防抖与节流(按钮触发事件)

引言:

手写JS的防抖与节流

防抖(Debounce)和节流(Throttle)是前端开发中常见的需求,用于避免事件过于频繁地触发。在实际项目中,尤其是涉及用户交互的表单或实时数据处理时,这两种技术能大大提升用户体验。以下是实现防抖与节流的JS代码示例。

防抖代码示例:

function debounce(fn, wait) {    let task = null;    return function () {        if (task) {            console.log('清除计时器');            clearTimeout(task);        }        task = setTimeout(() => {            console.log('设置了计时器');            fn.apply(this, arguments);        }, wait);    };}function fun1() {    console.log('btn1的函数执行了');}var btn1 = document.getElementById('debounce');btn1.addEventListener("click", debounce(fun1, 2000));

节流代码示例:

function throttle(fn, wait) {    let task = null;    return function () {        if (!task) {            console.log('设置了task定时器');            task = setTimeout(() => {                task = null;                fn.apply(this, arguments);            }, wait);        }    };}function fun2() {    console.log('btn2的函数执行了');}var btn2 = document.getElementById('throttle');btn2.addEventListener('click', throttle(fun2, 2000));

执行效果:

在实际操作中,您可以看到防抖按钮(id="debounce")在快速点击时不会连续多次执行函数fun1,而节流按钮(id="throttle")在短时间内同样不会多次触发fun2。这种设计能够有效减少不必要的事件处理,提升用户体验。

转载地址:http://gdxpz.baihongyu.com/

你可能感兴趣的文章
2021-05-08
查看>>
【Linux】VMware Workstation 不可恢复错误: (vcpu-0)
查看>>
VS中 fatal error LNK1123: 转换到 COFF 期间失败 的解决方法
查看>>
关于Img标签在固定宽高的容器内部以图片比例缩放存在
查看>>
python3---读写文件、POST表单请求、HTML处理、列表分割遍历,进行暴力破解用户名与密码
查看>>
Android Studio基础项目-布局XML设置的实战-全屏显示登录界面,去除按钮深颜色
查看>>
python --- 监控客户端是否存活
查看>>
pyhton---异常处理的终极语法、网页访问基本读取、网页访问异常处理
查看>>
Centos 7.3 计算本目录下的以特定名字文件夹个数
查看>>
linux下编程出现 对'sem_wait'未定义的引用解决方案
查看>>
JavaFX学习笔记-颜色选择器ColorPicker与日期选择器DatePicker
查看>>
工具研究:(三)Nginx配置错误的路由时均统一跳转到登录界面
查看>>
前端框架(react+umi+dva+ant design pro )攻克: 二、react 父子组件通信(二)
查看>>
ant design pro v5去掉右边content区域的水印
查看>>
get/set方法是外界访问对象私有属性的唯一通道,方法内部可对数据进行检测和过滤(代码演示)
查看>>
web_求和(练习)
查看>>
9. ArrayList与LinkedList的区别
查看>>
52. 什么时候会发生类初始化?
查看>>
JavaScript——使用iterator遍历迭代map,set集合元素
查看>>
常用的Linux命令
查看>>