当前位置: 首页 > news >正文

防抖 debounce.js

let timeout = null/*** 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数** @param {Function} func 要执行的回调函数* @param {Number} wait 延时的时间* @param {Boolean} immediate 是否立即执行* @return null*/
function debounce(func, wait = 500, immediate = false) {// 清除定时器if (timeout !== null) clearTimeout(timeout)// 立即执行,此类情况一般用不到if (immediate) {const callNow = !timeouttimeout = setTimeout(() => {timeout = null}, wait)if (callNow) typeof func === 'function' && func()} else {// 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法timeout = setTimeout(() => {typeof func === 'function' && func()}, wait)}
}
function throttle(fn, delay = 1000, immediate = false) {console.log("进入节流对象")let timerlet status = false // 是否为重复点击状态return function () {let _this = thislet args = argumentsif (immediate) {console.log("立即执行参数 执行一次方法")fn.apply(_this, args)immediate = falsereturn}if (status) {console.log("当前点击状态为正在重复点击,请稍等片刻后在点击执行")return}console.log("执行节流:当前执行了一次点击方法")fn.apply(_this, args)status = true // 修改状态timer = setTimeout(() => {console.log("规定时间到,重置状态,可以重新调用")status = false}, delay)}}export {debounce,throttle}

使用
import { debounce, throttle } from "@/common/debounce.js";

 confirmDel: throttle(function () {this.delArticle();}, 2000),

http://www.lryc.cn/news/620391.html

相关文章:

  • Synology File Station 官方 API 指南总结(中文版)
  • windows 资源管理器缩略图 ,支持.MP4(H.265/HEVC编码)视频格式和.HEIC(HEIF)图片格式的软件
  • 《吃透 C++ 类和对象(中):拷贝构造函数与赋值运算符重载深度解析》
  • Cypher注入详解:原理、类型与测试方法
  • Python入门第1课:环境搭建与第一个程序“Hello World”
  • SQL详细语法教程(三)mysql的函数知识
  • Mac 新电脑安装cocoapods报错ruby版本过低
  • 计算机如何进行“卷积”操作:从图像到矩阵的奥秘
  • Java进阶学习之Stream流的基本概念以及使用技巧
  • OS设备UDID查看方法
  • Java毕业设计选题推荐 |基于SpringBoot的健身爱好线上互动与打卡社交平台系统 互动打卡小程序系统
  • UniVoc:基于二维矩阵映射的多语言词汇表系统
  • 机海沉浮录,荣耀的HTC式困局
  • 重塑隐私边界,微算法科技(NASDAQ:MLGO)开发基于边缘计算的轻量级区块链身份隐私保护方案
  • 【论文阅读 | CVPR 2024 | UniRGB-IR:通过适配器调优实现可见光-红外语义任务的统一框架】
  • 【C++】细说继承(2w字详解)
  • 如何手动开启 Hyper-V?Windows 10/11 详细开启教程
  • AI绘画:从算法原理解读其风格、质量与效率变革
  • Python机器学习与深度学习;Transformer模型/注意力机制/目标检测/语义分割/图神经网络/强化学习/生成式模型/自监督学习/物理信息神经网络等
  • 医疗洁净间的“隐形助手”:富唯智能复合机器人如何重塑手术器械供应链
  • postgreSQL在arcmap中创建企业级数据库
  • k8s+isulad 网络问题
  • 从阿尔法狗到生活日常:机器学习如何重塑我们的世界?
  • 【Java 后端】Spring Boot 集成 JPA 全攻略
  • 推荐三个国内开源数据治理工具
  • 【完整源码+数据集+部署教程】肾脏病变实例分割系统源码和数据集:改进yolo11-CARAFE
  • 将mysql数据库表结构导出成DBML格式
  • 古中医学习笔记专题文章导航
  • GUI Grounding: ScreenSpot
  • 在云蝠智能VoiceAgent中融入通话背景音:解析如何打造拟人化语音交互体验